使用jsonp跨域請求后可以獲得數據,但是進入error方法,返回parseerror


$.ajax({
url:url,
dataType:'jsonp',
jsonp: 'callback',//回調函數名字
jsonpCallback: 'success_jsonpCallback',//可以不寫,也可以自定義,用來取代 jQuery 自動生成的隨機函數名,不寫將由jq自動生成,每次生成的結果都不一樣
// processData: true,
type:'get',
success:function(json){
console.log(json);
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}});

解決:設置jsonp參數回調函數名字與服務器一致

w3標准參數介紹

jsonp

類型:String

在一個 jsonp 請求中重寫回調函數的名字。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 會導致將 "onJsonPLoad=?" 傳給服務器。

jsonpCallback

類型:String

為 jsonp 請求指定一個回調函數名。這個值將用來取代 jQuery 自動生成的隨機函數名。這主要用來讓 jQuery 生成度獨特的函數名,這樣管理請求更容易,也能方便地提供回調函數和錯誤處理。你也可以在想讓瀏覽器緩存 GET 請求的時候,指定這個回調函數名。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM