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请求检查应用是否允许本域访问,允许后才会继续发送一个正式的请求。
  • 相关阅读:
    hive表增量抽取到oracle数据库的通用程序(二)
    java进程的守护进程脚本
    hadoop2.7节点的动态增加与删除
    hive表增量抽取到oracle数据库的通用程序(一)
    arduino 驱动电调
    arduino IO口
    通过电机编码器AB相输出确定电机转向
    Wifi小车资料
    winform 按键控制
    vs2010 EF4.0 访问mysql
  • 原文地址:https://www.cnblogs.com/wlhai/p/10917341.html
Copyright © 2011-2022 走看看