jquery處理ajax跨域問題方法(一)(轉)
阿新 • • 發佈:2019-02-14
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 (){
。。。
<
|