簡體   English   中英

CORS – 跨域請求被阻止 – 'Access-Control-Allow-Origin' 標頭包含無效值

[英]CORS – Cross Origin Request Blocked – The 'Access-Control-Allow-Origin' header contains invalid value

我遇到了 CORS 問題,我似乎無法解決。

我的設置:

  • 網絡A上的路由器/熱點
  • 網絡B上的網絡服務器

我想要做的是......用戶將他的電子郵件輸入到Hotspot入口頁面,當他點擊提交時,電子郵件被發送到網絡服務器(當前使用XAMPP),這就是CORS問題發生的地方。

跨域請求被阻止:同源策略不允許在http://myIpAddress:8080/DBinsert.php讀取遠程資源。 (原因:CORS 標頭“Access-Control-Allow-Origin”缺失。

以前我有header('Access-Control-Allow-Origin: *'); 設置,我沒有CORS問題......

我已經嘗試將此代碼添加到我的 php 的開頭,但它仍然無法正常工作......

header('Access-Control-Allow-Origin: http://10.5.50.*');

我也試過

header('Access-Control-Allow-Origin: http://10.5.50.*:8080');

它不起作用......

計算機 IP 為 10.5.50.3

歡迎任何幫助和解釋。

謝謝你。

Access-Control-Allow-Origin response-header 值必須是單個字符*或精確的原始值,例如http://10.5.50.3

除非Access-Control-Allow-Origin值只是字符* ,否則瀏覽器會與標頭的文字值完全匹配; 因此, 10.5.50.* (例如)不會匹配任何東西——因為瀏覽器不會將10.5.50.*中的星號解釋為通配符。

注意: Access-Control-Allow-Origin值必須包含協議部分; 所以http://10.5.50.3是標題的有效值,但10.5.50.3不是。

僅使用域部分的 Access-Control-Allow-Origin,例如:https: //www.yourdomain.com

注意:從域中刪除最后一個“/”字符,否則它將不起作用

這將解決路由器 ip 或代理的任何問題,因此最好使用域名,如果有一天您更改服務器(並更改 IP),那么您將無需擔心再次更改所有 CORS 策略。

我在 c# 上使用

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "https://www.example.com")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM