CORS策略“控制-允许-起源”IIS

pb3s4cty  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(74)

我有Angular,Entity Framework和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>

我进入浏览器:“已被CORS策略阻止:“控制-允许-原点”“标头的值”“http://localhost”"不等于提供的原点”
当我将其更改为:

<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政策阻止:当请求的凭据模式为“include”时,响应中“Access-Control-Allow-Origin”标头的值不能为通配符“*”。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策略阻止:“”“控制-允许-起源”“标头包含无效值”“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 -您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。“现在好点了吗?下一步可能是什么?

cidc1ykv

cidc1ykv1#

如果您的localhost服务器在特定端口上运行,则必须将其包含在Access-Control-Allow-Origin中,例如http://localhost:8080
在浏览器Developer Tools > Network中,检查Request header并验证Referer。这是应该为Access-Control-Allow-Origin设置的URL。

开发者工具>网络

配置

<add name="Access-Control-Allow-Origin" value="http://localhost:8080" />

此外,您可能需要设置Access-Control-Allow-Credentials

<add name="Access-Control-Allow-Credentials" value="true" />

相关问题