首先新建一个类,作用是允许API接口跨域访问
using Microsoft.AspNetCore.Http;第二步:在Startup.cs中引用这个类中找到Configure这个方法 添加如下:
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);
}
}
}
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】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.