jQuery中AJAX的跨域解決方案

jQuery中封裝了ajax的方法,以下主要討論在這種方法下跨域的問題

1. 在服務端添加響應頭

  header('Access-Control-Allow-Origin',  '*')
  header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')

顯然這種方法需要你能夠修改服務端的代碼
使用這種方法在谷歌瀏覽器下依然可能會有限制,可能會有報錯”Origin null is not allowed by Access-Control-Allow-Origin”,一個解決方法是將文件都放到一個服務器上,第二個解決方式右鍵谷歌瀏覽器,點擊屬性,在位置後面加上–disable-web-security

2.jsonp

這是一種僞跨域的方法,將ajax方法發生的參數中加上datatype:jsonp,
這種方法只支持GET,不支持POST,而且傳回的數據大小有限制。
還有一點要注意的是,jsonp的格式與json略有不同,要對傳回的格式加以修改才行


然而在無法修改服務端代碼的情況下,上面的方法顯然不夠,這裏推薦cors的方法,這裏推薦阮一峯的博客或者查MDN

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章