百度地圖座標轉換Web服務跨域請求
阿新 • • 發佈:2019-02-18
使用
$.ajax({
type : "get",
async:false,
url : reqUrl,
dataType : "jsonp",
jsonp: "callbackparam",
jsonpCallback:"success_jsonpCallback",
success: function(json){
console.log("success");
console.log(json);
},
error: function() {
alert("失敗");
}
});
或者
$.getJSON(reqUrl,function(json){
console.log("success");
console.log(json);
});
即jsonp,進行跨域請求時,由於伺服器返回的資料是callback{json資料}這種格式,即jsonp格式,瀏覽器會報 unexpected token 錯誤,解決方法如下:
(1)在伺服器端多返回的資料進行處理,改成jsonp格式
(2)在reUrl中,新增引數callback=? 即 reqUrl=reqUrl+"&callback=?";
對於(1)伺服器端絕大多數時候是無法控制的,所以更常見的方法是(2)。
對於(2)解釋如下,引言,http://www.zhihu.com/question/24013110/answer/27693431:
jquery會自動檢測callback引數是否存在並替換為一個回撥函式名,服務端需要輸出“這個函式名(資料)”這樣的js程式碼,瀏覽器得到後,執行js,就呼叫jquery建立的函式並將資料傳給jquery了