Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular CORS政策“;“访问控制允许来源”;非法移民_Angular_Iis_Cors - Fatal编程技术网

Angular CORS政策“;“访问控制允许来源”;非法移民

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" /> <

我有angular、实体框架和MS SQL server。我需要在MS IIS上设置后端,因为我需要域身份验证。 不幸的是,我的CORS仍然有问题

当我的web.config文件中有以下内容时:

<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" />