CORS ajax跨域請求php簡單完整案例一則

2022-08-23 03:00:14 字數 1576 閱讀 1735

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 

// 剛出現的那些header...

此時我們隨隨便便建乙個html頁面,寫下下面這段極簡的xmlhttprequest請求js**:

我們就能請求到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之所以需要 跨域 罪...