$.ajax jsonp parsererror

場景重現

經過$.ajax()發起的跨越請求代碼以下:javascript

$.ajax({
    dataType: "JSONP",
    type: "GET",
    url: "http://...",
    data: {},
    success: function(data, textStatus){
        // 這裏什麼都沒處理,寫了也沒反應.
    },
    error: function(xhr, textStatus, ex){
         console.log(textStatus);   
         console.log(ex);
    }        
});

發起 ajax 跨域請求後...java

// Firefox 控制檯下老是輸出
SyntaxError: missing ; before statement

咋一看SyntaxError我還覺得是我代碼哪裏寫漏了,檢查事後,代碼沒問題.
同時把完整的請求,直接扔到瀏覽器地址欄裏訪問,響應是正常的.
可是在上面的代碼中,死活不執行success對應的函數.
同時error對應的函數輸出以下:jquery

parsererror
Error: jQuery111209138057178219225_1496905174485 was not called
堆棧跟蹤:
error@http://localhost:5903/js/jquery/jquery-1.11.2.min.js:2:1809
b.converters["script json"]@http://localhost:5903/js/jquery/jquery-1.11.2.min.js:4:27729
Pc@http://localhost:5903//js/jquery/jquery-1.11.2.min.js:4:18329
x@http://localhost:5903/js/jquery/jquery-1.11.2.min.js:4:21743
send/b.onreadystatechange@http://localhost:5903/js/jquery/jquery-1.11.2.min.js:4:27017

錯誤緣由

初步懷疑是接口提供方沒有處理跨域請求,沒有把處理結果包含到JSONP中對應的回調函數中再返回,而是直接返回了 JSON 格式的處理結果.ajax

解決辦法

TODO:待我試試經過轉發的方式可否解決...json

相關文章
相關標籤/搜索