Angular CORS政策“;“访问控制允许来源”;非法移民
我有angular、实体框架和MS SQL server。我需要在MS IIS上设置后端,因为我需要域身份验证。 不幸的是,我的CORS仍然有问题 当我的web.config文件中有以下内容时:Angular CORS政策“;“访问控制允许来源”;非法移民,angular,iis,cors,Angular,Iis,Cors,我有angular、实体框架和MS SQL server。我需要在MS IIS上设置后端,因为我需要域身份验证。 不幸的是,我的CORS仍然有问题 当我的web.config文件中有以下内容时: <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="http://localhost" /> <
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://localhost" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
'不等于提供的原点'
当我将其更改为:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
我得到:
已被CORS策略阻止:当请求的凭据模式为“包括”时,响应中的“访问控制允许来源”标头的值不得为通配符“*”。XMLHttpRequest启动的请求的凭据模式由withCredentials属性控制。“
你知道我该换什么吗
下一个变化:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="" />
<add name="Access-Control-Allow-Credentials" value="true" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
浏览器中出现错误:“已被CORS策略阻止:'Access Control Allow Origin'标头包含无效值'true'
在fiddler中,我可以看到:
安全
访问控制允许来源:true
看起来这些值没有添加到给定的头中
下一个更改:我安装了用于IIS的CORS模块,文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<cors enabled="true" failUnlistedOrigins="true">
<add origin="http://localhost:4200"
allowCredentials="true"
maxAge="120">
<allowHeaders allowAllRequestedHeaders="true">
<add header="header1" />
</allowHeaders>
<allowMethods>
<add method="GET, POST" />
</allowMethods>
</add>
</cors>
</system.webServer>
</configuration>
现在浏览器中的答案是:
“HTTP错误404.0-找不到
您正在查找的资源已被删除、名称已更改或暂时不可用。
"
现在好点了吗?
下一步可以做什么?如果您的本地主机
服务器在特定端口上运行,则必须将其包含在访问控制允许源
中,例如http://localhost:8080
在浏览器开发人员工具>网络中,检查请求标题并验证引用程序。这是应为访问控制允许来源设置的URL
开发者工具>网络
配置
请参阅“更新以验证请求头”以设置正确的源文件
。不幸的是,它不起作用。我尝试将IIS上的主机移动到与实体框架相同的位置,但没有成功。现在,我收到了400个错误的请求。
<add name="Access-Control-Allow-Origin" value="http://localhost:8080" />
<add name="Access-Control-Allow-Credentials" value="true" />