鍍金池/ 問答/HTML/ 微信jssdk中請求得到access_token遇到跨域問題,改寫為jsonp,

微信jssdk中請求得到access_token遇到跨域問題,改寫為jsonp,報(bào)錯(cuò)

微信jssdk中請求得到access_token遇到跨域問題,改寫為jsonp,
報(bào)錯(cuò)Uncaught SyntaxError: Unexpected token :

clipboard.png

            $.ajax({
                url: "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=ID&secret=secret",
                type: "get",
                dataType: "jsonp",
                jsonp: "callback",
                jsonpCallback:"jsonpCallback",
                beforeSend:function(){
                    console.log('努力查詢中,請稍后');
                },
                success: function (data) {
                    console.log(data);
                },
                error: function () {
                    console.log("系統(tǒng)錯(cuò)誤")
                }
            });

console下報(bào)錯(cuò)

clipboard.png

點(diǎn)進(jìn)去可以看到數(shù)據(jù)

clipboard.png

請問怎么解決呢? 在線等?。。。。。。。。。。。。。。。。。?!1

回答
編輯回答
蝶戀花
  1. jsonp需要服務(wù)端配合才可以
  2. 微信不推薦在瀏覽器端獲取access_token,會帶來以下問題:

    1. 每個(gè)瀏覽器打開之后都會獲取一次,用戶量一多,該API由于超過調(diào)用次數(shù)被微信停掉
    2. appid和secret泄漏
    3. 無法統(tǒng)一緩存access_token
2017年11月24日 12:20
編輯回答
維他命

是后臺返回的json格式的問題,應(yīng)該是jsonpCallback({"鍵值對"}),函數(shù)名和后臺的要一致的,參考:http://blog.csdn.net/guang730...
昨天晚上正好遇到這個(gè)問題,搞了很晚才搞定

2017年11月11日 07:34
編輯回答
孤巷

補(bǔ)補(bǔ)基礎(chǔ)吧,并不是把不支持跨域的接口的請求方式改成jsonp,這個(gè)接口就能跨域了。jsonp也是需要服務(wù)端支持的。再說請求微信的access_token都是在后端做的,哪有放在前端的。

至于為什么在network里可以看到請求的響應(yīng)內(nèi)容,因?yàn)閖sonp就相當(dāng)于在頁面里用<script src>的方式引入js,script引入是沒有跨域限制的,但是你引入的這個(gè)腳本根本不是jsonp,所以你代碼里拿不到響應(yīng)內(nèi)容的。

2018年7月4日 12:16