先描述一下,這個問題,是如何遇到的
在ajax呼叫遠端服務的時候,報了一個Origin xxxxxx is not allowed by Access-Control-Allow-Origin 的錯誤,
大概的意思就是說,沒有許可權,解決方法據說要在服務端的response裡面設定一個許可權(網上有例子),
可是,服務端的方法,不可以修改,
所以就用到了jsonp的跨域訪問。
具體的格式如下:
jQuery.ajax({ type: `GET`, url: `http://wncrunners.com/admin/colors.json` , dataType: `jsonp`, success: function(data) { alert(`success`); }
error:function(){
console.log(`error`);
} });
但是呢,具體呼叫時,就報了一個這樣的錯;[雖然報錯,但是json資料已經正確取出]
該錯誤是google報的:報錯資訊:Uncaught SyntaxError:Unexpected token:
這個大概的意思說:返回的是json,但是指定的dataType卻是jsonp,所以會報這種錯誤。
解決的辦法如下:[我的程式碼是這樣的]
$.ajax({
crossOrigin: true,
url :""http://cyx.ehang365.cn/map/ship-static-info/ajax/getByMmsi?mmsi="+prop.mmsi,
type : "GET",
success:function(data){
console.log(data);
}
})
可以採用的方法有:
1-下載[http://www.ajax-cross-origin.com/]中的ajax跨源外掛。
2-在普通jQuery連結下面新增一個指令碼連結。
3-在ajax函式中新增行“crossOrigin: true”[這裡採用的就是這種]。
不好意思,問題未配圖。其實大概意思還是比較清晰的。