先描述一下,這個問題,是如何遇到的 在ajax調用遠程服務的時候,報了一個Origin xxxxxx is not allowed by Access-Control-Allow-Origin 的錯誤, 大概的意思就是說,沒有許可權,解決方法據說要在服務端的response裡面設置一個許可權(網上有例子 ...
先描述一下,這個問題,是如何遇到的
在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”[這裡採用的就是這種]。
不好意思,問題未配圖。其實大概意思還是比較清晰的。