c#解决浏览器跨域问题
程序员文章站
2022-06-18 10:02:11
1.浏览器为什么不能跨域? 浏览器有一个基本的安全策略--同源策略。为保证用户的信息安全,它对不同源的文档或脚本对当前文档的读写操作做了限制。域名,子域名,端口号或协议不同都属于不同源,当脚本被认为是来自不同源时,浏览器虽然会发出这个请求,但是会拦截响应内容。 2.解决跨域问题 CORS(Cross ......
1.浏览器为什么不能跨域?
浏览器有一个基本的安全策略--同源策略。为保证用户的信息安全,它对不同源的文档或脚本对当前文档的读写操作做了限制。域名,子域名,端口号或协议不同都属于不同源,当脚本被认为是来自不同源时,浏览器虽然会发出这个请求,但是会拦截响应内容。
2.解决跨域问题
cors(cross-origin resource sharing,跨域资源共享),通过向http的请求报文和响应报文里面加入相应的标识告诉浏览器它能访问哪些域名的请求,直接在项目中安装microsoft.aspnetcore.cors即可使用。
(1).net core
在appsettings中配置可以访问的路径
"cors": {
"default": "http://localhost:0000,http://localhost:1111"
},
在startup中configureservices下配置
var urls = configuration.getsection("cors:default").value.split(',');
services.addcors(options =>
{
options.addpolicy("alloworigins", builder =>
{
builder.withorigins(urls).allowanymethod().allowanyheader().allowcredentials();
});
});
在configure中使用
app.usecors("alloworigins");
(2)web api
在web.config中配置:
<add key="alloworigins" value="http://localhost:0000,http://localhost:1111"/>
<add key="allowheaders" value="*"/>
<add key="allowmethods" value="*"/>
在webapiconfig中配置:
var alloworigins = configurationmanager.appsettings["alloworigins"]; var allowheaders = configurationmanager.appsettings["allowheaders"]; var allowmethods = configurationmanager.appsettings["allowmethods"]; var globalcors = new enablecorsattribute(alloworigins, allowheaders, allowmethods); config.enablecors(globalcors);
推荐阅读
-
不知大家遇到过这种问题么,一个层宽度设为100%,并设置背景图片,在浏览器中浏览,缩小窗口到滚动条出现,然后拖动滚动条到右侧,右侧的区域变成空白,怎么解决?_html/css_WEB-ITnose
-
wap网站开发之解决Ajax跨域获取json数组的问题
-
UCweb判断wap的方法-解决uc下网站重复提交问题 WAPUCWeb浏览器AndroidXML
-
Ajax跨域访问Cookie丢失问题的解决方法_AJAX相关
-
AngularJs解决跨域问题案例详解(简单方法)
-
浏览器解析js生成的html出现样式问题的解决方法_javascript技巧
-
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题_extjs
-
解决vue请求node跨域问题
-
什么是跨域?跨域解决方法
-
如何解决日期函数new Date()浏览器兼容性问题