• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

asp.net—WebApi跨域

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、什么是跨域?

  定义:是指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET结合数据库,发送邮件找回密码发布时间:2022-07-10
下一篇:
DataSet导出CSV格式(ASP.NET,C#)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap