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

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

  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请求检查应用是否允许本域访问,允许后才会继续发送一个正式的请求。

最新文章

  1. 2、C#核心编程结构
  2. WCF服务编程
  3. caffe的python接口学习(5):生成deploy文件
  4. CSS居中布局总结【转】
  5. easyui DataGrid 工具类之 util js
  6. 指定页面配置https(apache/tomcat)
  7. 【Spring】Spring系列2之bean的配置
  8. adb_亮屏
  9. 所有的代码生成器都是浮云,如果可以用aspx文件作为模板
  10. Android平台对H264视频硬解码
  11. linux 让一个程序开机自启动并把一个程序加为服务
  12. 【Linux】日志分析工具grep sed sort
  13. java.lang.IllegalStateException: Cannot forward after response has been committed的一个情况解决方法
  14. 【转】python虚拟环境--virtualenv
  15. Alpha冲刺! Day9 - 砍柴
  16. 【软件工程1916|W(福州大学)_助教博客】团队答辩助教问题记录
  17. Java——集合
  18. ThreadLoacl 小记
  19. unity 脚本执行顺序设置 Script Execution Order Settings
  20. Ajax Control Toolkit 34个服务器端控件的使用

热门文章

  1. SQL Server 2017 SELECT…INTO 创建的新表指定到文件组
  2. 微信小程序把玩(二)window配置
  3. C#有哪几种定时器
  4. UWP项目生成安装包远程安装在树莓派上
  5. 支付宝RSA签名之Delphi实现
  6. 【canvas】高级功能一 变形
  7. Google C++测试框架系列入门篇:第二章 开始一个新项目
  8. BITED数学建模七日谈之一:参加全国大学生数学建模比赛前你需要积累哪些
  9. 发布一个Django项目
  10. Python自学day-3