Asp.net之实现自定义跨域
2024-09-01 00:32:23
跨域是指在浏览器的同源策略下导致前端和接口部署在不同域下导致无法直接访问的问题。
针对跨域有多种解决方案常见的有:
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请求检查应用是否允许本域访问,允许后才会继续发送一个正式的请求。
最新文章
- 2、C#核心编程结构
- WCF服务编程
- caffe的python接口学习(5):生成deploy文件
- CSS居中布局总结【转】
- easyui DataGrid 工具类之 util js
- 指定页面配置https(apache/tomcat)
- 【Spring】Spring系列2之bean的配置
- adb_亮屏
- 所有的代码生成器都是浮云,如果可以用aspx文件作为模板
- Android平台对H264视频硬解码
- linux 让一个程序开机自启动并把一个程序加为服务
- 【Linux】日志分析工具grep sed sort
- java.lang.IllegalStateException: Cannot forward after response has been committed的一个情况解决方法
- 【转】python虚拟环境--virtualenv
- Alpha冲刺! Day9 - 砍柴
- 【软件工程1916|W(福州大学)_助教博客】团队答辩助教问题记录
- Java——集合
- ThreadLoacl 小记
- unity 脚本执行顺序设置 Script Execution Order Settings
- Ajax Control Toolkit 34个服务器端控件的使用