首页 .NET/Web NETCoreAPI中已拦截跨源请求:同源策略禁止读取位于 xxx 的远程资源。

NETCoreAPI中已拦截跨源请求:同源策略禁止读取位于 xxx 的远程资源。

作者:胡同里的砖头 围观群众:319 更新于:2022-01-26

首先新建一个类,作用是允许API接口跨域访问

using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace api
{
public class CorsMiddleware
{
private readonly RequestDelegate _next;
public CorsMiddleware(RequestDelegate next)
{
_next = next;
}

public async Task Invoke(HttpContext context)
{
if (!context.Response.Headers.ContainsKey("Access-Control-Allow-Origin"))
{
context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
context.Response.Headers.Add("Access-Control-Allow-Headers", "*");
}
await _next(context);
}
}

}
第二步:在Startup.cs中引用这个类中找到Configure这个方法 添加如下:
 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseMiddleware<CorsMiddleware>();//引用之前添加的类,允许跨域
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseHttpsRedirection();

app.UseRouting();

////====这里位置要确定好,写在app.UseRouting();和app.UseAuthorization();中间====
app.UseCors(x => x
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed(origin => true));
////===================================

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});


}
之后每个接口访问都会授权允许跨域访问请求

  • 本文标题: NETCoreAPI中已拦截跨源请求:同源策略禁止读取位于 xxx 的远程资源。
  • 文章分类:【.NET/Web】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8