1. 程式人生 > >jquery處理ajax跨域問題方法(一)(轉)

jquery處理ajax跨域問題方法(一)(轉)

2.XHR2

HTML5中提供的XMLHTTPREQUEST Level2(及XHR2)已經實現了跨域訪問。但ie10以下不支援

只需要在服務端填上響應頭:

?
1 2 3 header("Access-Control-Allow-Origin:*"); /*星號表示所有的域都可以接受,*/ header("Access-Control-Allow-Methods:GET,POST");

3.jsonP

原理:

 ajax本身是不可以跨域的,
通過產生一個script標籤來實現跨域。因為script標籤的src屬性是沒有跨域的限制的。

其實設定了dataType: 'jsonp'後,$.ajax方法就和ajax XmlHttpRequest沒什麼關係了,取而代之的則是JSONP協議。JSONP是一個非官方的協議,它允許在伺服器端整合Script tags返回至客戶端,通過javascript callback的形式實現跨域訪問。

 ajax的跨域寫法:

(其餘寫法和不跨域的一樣):

比如 

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 /*當前網址是localhost:3000*/ js程式碼 $.ajax({ type:"get", dataType:"jsonp",/*加上datatype*/ jsonpCallback:"cb",/*設定一個回撥函式,名字隨便取,和下面的函式裡的名字相同就行*/ success:function(){ 。。。 <