$.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 請求的時候,指定這個回調函數名。