看起来像这么简单的问题,但我找不到答案,所以让我相信也许我没有控制旗帜!?
语境:
我正在开发一个SignalR中心和客户端.如果(在信号器站点上)我在配置中设置以下内容,则一切正常:
<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="http://example.com" /> </customHeaders> </httpProtocol> </system.webServer>
问题是我想在这里使用通配符.
当我这样做(即value =“*”)时,我得到以下错误(在客户端上):
A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true.
我可能会在这里遗漏一些简单的东西,但我找不到允许我设置凭证标志的相关配置条目.
我试过的
<add name="Access-Control-Allow-Credentials" value="false"/>
似乎没有什么区别(同样的错误).
解决方法
我相信您的客户正在提交凭据. CORS不允许将凭据包含在通配符匹配设置中.
这个question很好地概括了它.
编辑:
This是一个更好的答案,回答类似的问题,并链接到我引用的问题.此外,这将是good place to read