美文网首页
在 Web.config 中,配置允许多个指定的域名进行跨域访问

在 Web.config 中,配置允许多个指定的域名进行跨域访问

作者: 缺水的海豚 | 来源:发表于2017-01-31 10:20 被阅读0次

一般来说,如果是要允许跨域访问,最简单的设置,就是在 Web.config 中,将 Access-Control-Allow-Origin 设置为 * 即可,如下所示:

<system.webServer>
    <!-- 其它配置 -->

    <httpProtocol>
        <customHeaders>
            <!-- 跨域配置 -->
            <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
    </httpProtocol>

</system.webServer>

但是对于强迫症来说,这样大而全的设置,感觉上不利于网站的安全。那么,如果要具体的指定允许跨域访问的域名,怎么处理呢?

第一种情况:指定具体的单个域名。

这种情况很好处理,在上面的配置中,将 Access-Control-Allow-Origin 的 value 设置为该域名(http://bbb.aaa.com)即可,注意:不能使用泛域名

第二种情况:指定多个域名。

这种情况,就不能在上述的 value 中写入多个域名了,哪怕用逗号分隔,也完全没有用。

这时,可以使用 URL Rewrite 组件达到这个效果。

URL Rewrite 的安装方式:

该组件安装好后(重启服务器),在 Web.config 中定位到 <system.webServer>,不用再添加 <httpProtocol> 中的跨域配置了,取而代之的是添加 <rewrite> 的配置,如下所示:

<system.webServer>
    <!-- 其它配置 -->

    <rewrite>
        <outboundRules>
            <rule name="AddCrossDomain">
                <match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                    <add input="{HTTP_ORIGIN}" pattern="(http(s)?://((.+\.)?domain1\.com|(.+\.)?domain2\.com|(.+\.)?domain3\.com))" />
                </conditions>
                <action type="Rewrite" value="{C:0}" />
            </rule>
        </outboundRules>
    </rewrite>

</system.webServer>

至此,允许多个指定域名的跨域访问就配置完了。

相关文章

  • Nodejs 设置跨域

    设置允许所有域名跨域: 设置允许指定域名“http://www.tefang.cn”跨域: 设置允许多个域名跨域:...

  • 在 Web.config 中,配置允许多个指定的域名进行跨域访问

    一般来说,如果是要允许跨域访问,最简单的设置,就是在 Web.config 中,将 Access-Control-...

  • Node.js如何设置允许跨域

    设置允许所有域名跨域: 设置允许指定域名“http://www.zhangpeiyue.com”跨域: 设置允许多...

  • Nginx 允许多个域名跨域访问

    参考: Nginx 允许多个域名跨域访问 当浏览器发起ajax请求到其他域名时,会出现跨域的问题,在nginx上的...

  • 跨域问题

    vue-resource和tp5之间的跨域问题 1.配置后端controller中加入// 指定允许其他域名访问h...

  • cors

    使用cors配置Access-Control-Allow-Origin可配置允许跨域访问哪个域名 配置Access...

  • Angular自定义服务&&路由

    什么是跨域 不同域名之间进行数据访问,默认情况下是不允许的。 是谁导致了跨域 是浏览器导致了跨域,为了数据的安全。...

  • Java Web中实现设置多个域名跨域访问

    添加以下设置可允许所有域名跨域访问: 但在实际应用中,为了安全起见,不应该让所有域名都能跨域请求服务器API,需要...

  • javaweb 中的跨域请求

    方法一 、使用ajax进行跨域请求 方法json数据 配置拦截器用于允许指定的请求跨域 为含有/json/的url...

  • Asp.Net MVC CORS

    Asp.Net MVC项目需要使用跨域访问,也就是运行CORS,可以在web.config中进行设置,方法如下: ...

网友评论

      本文标题:在 Web.config 中,配置允许多个指定的域名进行跨域访问

      本文链接:https://www.haomeiwen.com/subject/hgzhittx.html