当我有“Access-Control-Allow-Origin:*”时,“Access-Control-Allow-Origin”出错
Posted
技术标签:
【中文标题】当我有“Access-Control-Allow-Origin:*”时,“Access-Control-Allow-Origin”出错【英文标题】:Error with "Access-Control-Allow-Origin", when i have "Access-Control-Allow-Origin: *" 【发布时间】:2017-06-15 11:32:45 【问题描述】:我有错误:
XMLHttpRequest 无法加载 http://localhost:5984/cp_config/。一种 通配符 '*' 不能在 'Access-Control-Allow-Origin' 中使用 当凭证标志为真时标头。原点“http://localhost”是 因此不允许访问。凭据模式 XMLHttpRequest 由 withCredentials 属性控制。
但我有标题:
res.header("Access-Control-Allow-Origin", "*");
我该如何解决这个问题?
【问题讨论】:
打开浏览器调试器并检查网络面板是否响应头包含 Access-Control-Allow-Origin:* 【参考方案1】:您可以通过让http://localhost:5984/cp_config/
的服务器端代码将Origin
request-header 值回显到Access-Control-Allow-Origin
response-header 值来修复它。
有关错误原因的详细信息,请参阅 MDN 上的“Credentialed requests and wildcards”。
如何将Origin
request-header 值回显到Access-Control-Allow-Origin
response-header 值取决于用于服务http://localhost:5984/cp_config/
的Web 服务器和服务器端编程环境(如果有)。
有一些 Web 服务器和编程环境具有良好的 CORS 库,这使得它非常容易实现,还有一些其他的,例如 Apache,几乎不可能单独使用它们来实现支持 CORS 的内容交付添加一些 Python 东西或 php 或其他任何东西,以允许对所需的标头值进行访问。
【讨论】:
【参考方案2】:你能试试把这个添加到 web.config 中
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
【讨论】:
以上是关于当我有“Access-Control-Allow-Origin:*”时,“Access-Control-Allow-Origin”出错的主要内容,如果未能解决你的问题,请参考以下文章
ABP PUTDELETE请求错误405.0 - Method Not Allowed 因为使用了无效方法(HTTP 谓词) 引发客户端错误 No 'Access-Control-Allow