PHPAjax跨域問題解決方案
本文通過設定Access-Control-Allow-Origin來實現跨域。
例如:客戶端的域名是client.0751.tv,而請求的域名是server.0751.tv。
如果直接使用ajax訪問,會有以下錯誤:
- XMLHttpRequest cannot load http://server.0751.tv/server.php. No `Access-Control-Allow-Origin` header is present on the requested resource.Origin `http://client.0751.tv` is therefore not allowed access.
複製
1、允許單個域名訪問
指定某域名(http://client.0751.tv)跨域訪問,則只需在http://server.0751.tv/server.php檔案頭部新增如下程式碼:
- header(`Access-Control-Allow-Origin:http://client.0751.tv`);
複製
2、允許多個域名訪問
指定多個域名(http://client1.0751.tv、http://client2.0751.tv等)跨域訪問,則只需在http://server.0751.tv/server.php檔案頭部新增如下程式碼:
- $origin = isset($_SERVER[`HTTP_ORIGIN`])? $_SERVER[`HTTP_ORIGIN`] : “;
- $allow_origin = array(
- `http://client1.0751.tv`,
- `http://client2.0751.tv`
- );
- if(in_array($origin, $allow_origin)){
- header(`Access-Control-Allow-Origin:`.$origin);
- }
複製
3、允許所有域名訪問
允許所有域名訪問則只需在http://server.0751.tv/server.php檔案頭部新增如下程式碼:
- header(`Access-Control-Allow-Origin:*`);
複製
相關文章
- 跨域問題,解決方案 – CORS方案跨域CORS
- 跨域問題,解決方案 - CORS方案跨域CORS
- 跨域問題及解決方案跨域
- Flutter Web 跨域問題解決方案FlutterWeb跨域
- Nginx跨域的問題解決方案Nginx跨域
- 前端跨域問題及其解決方案前端跨域
- nginx /Java 解決跨域問題方案NginxJava跨域
- Vue中跨域問題解決方案1Vue跨域
- SpringBoot跨域問題解決方案Spring Boot跨域
- 跨域問題,解決方案 - Nginx反向代理跨域Nginx
- WebApi 跨域問題解決方案(3):CORSWebAPI跨域CORS
- 解決跨域問題跨域
- Laravel6.X 跨域問題解決方案Laravel跨域
- 前端解決跨域問題的8種方案前端跨域
- 搞懂:前端跨域問題JS解決跨域問題VUE代理解決跨域問題原理前端跨域JSVue
- CROS 解決跨域問題ROS跨域
- cors解決跨域問題CORS跨域
- WebSocket跨域問題解決Web跨域
- Flask解決跨域問題Flask跨域
- Luffy - 解決跨域問題跨域
- 跨域問題,解決之道跨域
- Java解決跨域問題Java跨域
- Web 學習之跨域問題及解決方案Web跨域
- 記一次跨域問題的解決方案跨域
- 跨域原理以及跨域解決方案跨域
- Nginx解決前端跨域問題 CORS跨域配置Nginx前端跨域CORS
- 深入跨域問題(2) - 利用 CORS 解決跨域跨域CORS
- 前端跨域問題解決方案(基於node與nginx)前端跨域Nginx
- 輕鬆解決跨域問題跨域
- JAVA | Java 解決跨域問題Java跨域
- 跨域問題解決辦法跨域
- thinkphp 5 跨域問題解決PHP跨域
- SignalR跨域問題解決SignalR跨域
- 深入跨域問題(3) – 利用 JSONP 解決跨域跨域JSON
- 深入跨域問題(3) - 利用 JSONP 解決跨域跨域JSON
- iris 跨域解決方案跨域
- Laravel 跨域解決方案Laravel跨域
- Ajax 跨域解決方案跨域