繁体   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