zoukankan      html  css  js  c++  java
  • Asp.net之实现自定义跨域

      跨域是指在浏览器的同源策略下导致前端和接口部署在不同域下导致无法直接访问的问题。

      针对跨域有多种解决方案常见的有:

      JSNOP:

       可参考Jquery实现,缺点是需要后端支持;

        Access-Control-Allow-Domain:

       不需要前端处理,后端通过配置响应头信息即可实现;

      

        <system.webServer>
          <httpProtocol>
            <!--跨域处理头部信息-->
            <customHeaders>
              <remove name="X-Powered-By" />
              <add name="Access-Control-Allow-Headers" value="X-XSRF-TOKEN,Authorization" />
              <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
              <add name="Access-Control-Allow-Domain" value="*" />
            </customHeaders>
          </httpProtocol>
        </system.webServer>

       如果是经典模式,<system.webServer>改为system.web即可

       

      Access-Control-Allow-Headers:允许请求携带的自定义头
      
      Access-Control-Allow-Methods:允许请求的方法
      
      Access-Control-Allow-Domain:允许访问域名,其中*代表所有,部分会不支持*号,建议返回指定站点的域名。

      
      通过配置的方式容易暴漏自己的所有对接域,不方便,每次配置后都需要重启站点。.NET中我们可以通过实现IHttpModul(https://www.cnblogs.com/wlhai/articles/10917191.html),注册应用请求结束是事件,实现自定义响应允许域信息。
      
      前端是请求接口时,如果是不同域的会先发送一个OPTIONS请求检查应用是否允许本域访问,允许后才会继续发送一个正式的请求。
  • 相关阅读:
    损失函数绘图
    nexus+maven配置
    tomcat 修改端口号
    Git 删除远程仓库文件,文件夹
    git 删除远程分支 branch
    IBM WebSphere Commerce之订单处理
    Python+Selenium自动化
    git push 时 rejected
    IBM WebSphere Commerce初探
    NetApp存储
  • 原文地址:https://www.cnblogs.com/wlhai/p/10917341.html
Copyright © 2011-2022 走看看