cors是cross-origin resource sharing的縮寫,表示跨域的資源分享,不僅可以跨子域,就算網域名稱長得完全不一樣,也可以進行資源獲取。
比較常見的應用之一就是ajax跨域請求資料。
這個特性ie11開始支援:
和**一樣,大好河山一片綠,青青草原漫無邊。
和傳統ajax請求相比,ajax跨域請求的偶爾工作量主要在資料接收方那一端,也就是在伺服器端設定。
舉個例子,假設我們服務端使用的是世界上最好的語言php,且ajax請求頁面的名稱是cors-ajax.php,那麼,我們可以在此php頁面進行如下header
設定:
// 設定允許其他網域名稱訪問header('access-control-allow-origin:*');
// 設定允許的響應型別
header('access-control-allow-methods:post, get');
// 設定允許的響應頭
header('access-control-allow-headers:x-requested-with,content-type');
access-control-allow-origin:*
表示任何網域名稱請求我,我都不會將別人拒之千里之外。通常實際開發的時候,我們這裡會設定信任的網域名稱,例如:
header('access-control-allow-origin:');如果是多個網域名稱,可以使用英文逗號進行分隔,和上面
access-control-allow-methods
的書寫格式一致。
只要在php頁面中進行了上面設定,剩下的工作就和傳統的ajax請求基本上沒有任何區別。
<?php此時我們隨隨便便建乙個html頁面,寫下下面這段極簡的xmlhttprequest請求js**:// 剛出現的那些header...
我們就能請求到cors-ajax.php隨機返回的位址。
眼見為實,您可以狠狠地點選這裡:cors ajax跨域請求測試demo/
可以看到,我們的demo測試頁面位址是:
也就是網域名稱是zxx.xiliz.com,而請求的php頁面網域名稱是www.zhangxinxu.com,典型的跨域請求場景,下面看看會發生什麼:
點選demo頁面上按鈕,然後噹噹噹噹:
成功請求到了隨機位址,並在頁面上呈現出來。
**於:by zhangxinxu from
AJAX跨域請求PHP介面
ajax跨域請求 親測也是可以完成的 麻煩的事需要前後端聯合改 最終找到了這個解決方法 header access control allow origin arr array echo json encode arr exit如此完美 輕而易舉的解決了 這樣做 不知道有什麼風險沒,看上去的確很簡單...
JS跨域請求 Ajax跨域請求JSONP
前兩天被問到ajax跨域如何解決,還真被問住了,光知道有個什麼jsonp,迷迷糊糊的沒有說上來。抱著有問題必須解決的態度,我看了許多資料,原來如此。為何一直知道jsonp,但一直迷迷糊糊的不明白呢?網上那些介紹資料都寫的太複雜了!我是能多簡單就多簡單,爭取讓你十分鐘看完!ajax之所以需要 跨域 罪...
JS跨域請求 Ajax跨域請求JSONP
前兩天被問到ajax跨域如何解決,還真被問住了,光知道有個什麼jsonp,迷迷糊糊的沒有說上來。抱著有問題必須解決的態度,我看了許多資料,原來如此。為何一直知道jsonp,但一直迷迷糊糊的不明白呢?網上那些介紹資料都寫的太複雜了!我是能多簡單就多簡單,爭取讓你十分鐘看完!ajax之所以需要 跨域 罪...