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请求检查应用是否允许本域访问,允许后才会继续发送一个正式的请求。
  • 相关阅读:
    深入学习Make命令和Makefile(上)
    make命令
    ubuntu 重启网络方法--通过杀死进程重启网络
    悟空遥控器 --- 手机投屏到电视 播放视频
    组织结构图 --- 商务
    软件和数据库
    因果图---鱼骨图
    流程图 --- BPMN规范简介
    异次元软件
    Free Download Manager (FDM) 中文版
  • 原文地址:https://www.cnblogs.com/wlhai/p/10917341.html
Copyright © 2011-2022 走看看