首頁  >  文章  >  php教程  >  伺服器端跨網域存取(CROS)解決方案

伺服器端跨網域存取(CROS)解決方案

高洛峰
高洛峰原創
2016-12-14 13:07:402550瀏覽

透過設定Http Header方式允許跨網域請求

<?php
    header("Access-Control-Allow-Origin: http://www.requesting-page.com");
?>

更多詳情

瀏覽器(客戶端)端程式碼範例:

https://developer.mozilla.org/en-US/docs/Web/HTTP/ Access_control_CORS


伺服器端程式碼範例:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Server-Side_Access_Control

修復交叉域腳本問題?

簡單的解決方案是允許發出請求的伺服器將請求傳送到任何網域或網域清單。要記住的重要一點是,更改將在提供網路服務的伺服器中進行。

有多種方法可以做到這一點

1.  您更改apache 的httpd-vhosts.conf 檔案中的設定(我使用的是Apache 2.2)

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.com
DocumentRoot “C:/apache-tomcat-6.0.29/webapps/myApplication”
ServerName skill-guru.com
ErrorLog “logs/skg1-error.log”
CustomLog “logs/skg1-access.log” common

Header set Access-Control-Allow-Origin “*”
<Directory “C:/apache-tomcat-6.0.29/webapps/myApplication”>
Options -Indexes FollowSymLinks
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory>
JkUnmount /*.jsp ajp13
</VirtualHost>

現在,在apache 伺服器中設定值並查看標頭後,會看到
HTTP/1.1 200 OK
日期:星期一, 2008 年12 月1 日00:23:53 GMT
服務器:Apache/2.0.61
訪問控制允許來源:*
保持活動:超時=2,最大=100
連接:保持活動
傳輸編碼: chunked
Content-Type: application/xml

怎樣配置Tomcat伺服器允許跨網域請求


如果您不打算使用Apache並且出於某種方式原因使用tomcat或任何其他支援過濾器的類似Web容器,這裡是一個現成的解決方案,Cors Filter

這為您提供了一個與任何Java Servlet 2.5+ Web 容器相容的servlet 過濾器。

安裝非常簡單。將 jar 加入到您的庫中

在您的 web.xml 中

添加此行

<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn