asp.net—WebApi跨域
程序员文章站
2022-07-02 17:29:03
一、什么是跨域? 定义:是指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。 同源策略限制了以下行为: 1、Cookie、LocalStorage和IndexDB无法读取 2、DOM和js对象无法获取 3、ajax请求无法发送 二、为什么要跨 ......
一、什么是跨域?
定义:是指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对javascript实施的安全限制。
同源策略限制了以下行为:
1、cookie、localstorage和indexdb无法读取
2、dom和js对象无法获取
3、ajax请求无法发送
二、为什么要跨域?
跨域问题来源于javascript的同源策略,即只有 协议+主机名+端口号(如存在)相同,则允许相互访问。
那么跨域就是在 协议+主机名+端口号(如存在)不相同时,让其允许相互访问。
三、webapi跨域解决办法
跨域解决办法有多种, 这里我给出最近在webapi + vue 实现前后端分离项目开发中的跨域解决方案:
(1)webapi配置文件里面添加如下配置信息即可
<system.webserver> <httpprotocol> <customheaders> <add name="access-control-allow-origin" value="*" /> <add name="access-control-allow-headers" value="*" /> <add name="access-control-allow-methods" value="get, post, put, delete, options" /> </customheaders> </httpprotocol> </system.webserver>
(2)当遇到webapi要开启session会话时,那么前端和后端的配置信息如下
webapi端(webapi默认是不支持session会话,需先手动设置其支持session会话)
<system.webserver> <httpprotocol> <customheaders> <add name="access-control-allow-origin" value="http://localhost:8080" /> //此时这里就不能为 * ,要填前端项目的正确域名地址 <add name="access-control-allow-headers" value="*" /> <add name="access-control-allow-methods" value="get, post, put, delete, options" /> <add name="access-control-allow-credentials" value="true"/> </customheaders> </httpprotocol> </system.webserver>
vue端
● 每个ajax请求都需将 withcredentials = true
上一篇: 钉钉调试应用Inspect不显示或显示空白的解决方法
下一篇: 动态给组件添加背景,一半圆角
推荐阅读
-
为ASP.NET MVC及WebApi添加路由优先级
-
Spring boot跨域设置实例详解
-
ASP.NET中HiddenField隐藏域控件的使用方法
-
支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例教程
-
基于C#后台调用跨域MVC服务及带Cookie验证的实现
-
ASP.NET 2.0中的数据操作之九:跨页面的主/从报表
-
spring4.3 实现跨域CORS的方法
-
springboot+jsonp解决前端跨域问题小结
-
在ASP.NET 2.0中操作数据之三十四:基于DataList和Repeater跨页面的主/从报表
-
springboot中如何通过cors协议解决跨域问题