AJAX跨越訪問解決方案

一、JSONP

  JSONP參考教材:http://kb.cnblogs.com/page/139725/html

  JSONP是利用HTML的script標籤一下特性:json

    1)引用外部資源不受跨域問題影響跨域

    2)script標籤加載完js資源後立馬自動執行加載的js安全

    3)新加載的js做用域爲全局服務器

  script標籤的src屬性指向服務端動態生成js文件,該js文件的基本格式以下:函數

callback(jsonData);

  其中callback函數在客戶端定義,名稱不定,由script標籤經過url傳參傳遞到服務器,jsonData爲目標數據。url

  簡單的說就是:在網頁中定義一個全局函數,讓後經過script標籤訪問服務器並帶上這個全局函數名,服務器收到這個函數名動態生成上文提到的js文件,網頁加載完後就會執行全局函數。spa

 優勢:

  簡單方便,經過封裝能作到像寫AJAX同樣;.net

 缺點:

  1)服務器接口須要改變code

  2)沒法獲獲知接口調用失敗

二、Access-Control-Allow-Origin

  在返回的響應信息中,使用 Access-Control-Allow-Origin 頭來控制哪些域名的腳本能夠訪問該資源。若是設置 Access-Control-Allow-Origin:*,則容許全部域名的腳本訪問該資源。若是有多個,則只須要使用逗號分隔開便可。

  注意:在服務器端,Access-Control-Allow-Origin 響應頭中的端口信息不能省略。

 優勢:

  1)簡單方便

  2)客戶端不須要做任何改動

 缺點:

  1)服務端安全性下降

  2)須要服務端配合修改報文頭

三、利用iframe

  推薦教程:http://www.jb51.net/article/33711.htm

 優勢:

 缺點:

  1)數據迂迴傳遞

  2)需在服務端部署response.html

  3)回調函數必須爲全局函數

相關文章
相關標籤/搜索