tnblog
首页
视频
资源
登录

.net core实现跨域

4978人阅读 2020/1/10 11:02 总访问:45828 评论:0 收藏:0 手机
分类: .NET Core

一、为什么会出现跨域问题

        出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)


二、什么是跨域

        当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。

三、非同源限制

【1】无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB

【2】无法接触非同源网页的 DOM

【3】无法向非同源地址发送 AJAX 请求

四、跨域解决方法

1、设置允许所有来源跨域

1.1、在StartUp类的ConfigureServices方法中添加如下代码:

// 配置跨域处理,允许所有来源
services.AddCors(options =>options.AddPolicy("cors",
                p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials()));

 1.2、修改Configure方法

// 允许所有跨域,cors是在ConfigureServices方法中配置的跨域策略名称
app.UseCors("cors");

2、设置特定来源可以跨域


2.1、修改ConfigureServices方法代码如下:

//允许一个或多个来源可以跨域
services.AddCors(options =>{
      options.AddPolicy("CustomCorsPolicy", policy =>
      {             
             // 设定允许跨域的来源,有多个可以用','隔开
             policy.WithOrigins("http://localhost:21632","http://localhost:21632")
             .AllowAnyHeader()
             .AllowAnyMethod()
             .AllowCredentials();
      });
});


2.2、修改Configure代码如下:

// 设定特定ip允许跨域 CustomCorsPolicy是在ConfigureServices方法中配置的跨域策略名称
app.UseCors("CustomCorsPolicy");


评价
……
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术