请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头
Posted
技术标签:
【中文标题】请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource Post request 【发布时间】:2021-02-18 15:04:53 【问题描述】:我知道这个问题被问了很多次,但在线提供的解决方案对我不起作用。 我尝试像这样从 Angular 发出发布请求
ApiResponse(formVal,url)
return this._Service.AddUser(this.url,formInput)
.toPromise().then(res=>
return res;
)
但我收到此错误 从源“http://localhost:4200”访问“http://localhost:61382/api”的 XMLHttpRequest 已被 CORS 策略阻止:没有“访问控制-请求的资源上存在 Allow-Origin' 标头。 即使我在 Asp.Net 中有 corsPolicy,这仅发生在 post 请求中。
public void ConfigureServices(IServiceCollection services)
services.AddCors(opt =>
opt.AddPolicy("CorsPolicy",
c => c.AllowAnyOrigin()
.AllowAnyHeader()
.AllowCredentials()
.AllowAnyMethod());
);
services.AddMvc();
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseCors("CorsPolicy");
app.UseAuthentication();
app.UseMvc(routes => routes.MapRoute(
"default", "api/controller/action/id?"
));
你能帮帮我吗?谢谢!
【问题讨论】:
你能显示你的控制器的标题和你的动作吗? 【参考方案1】:尝试将 app.UseCors("CorsPolicy") 移出 if (env.IsDevelopment());
并将您的 services.AddCors 更改为另一种语法:
services.AddCors(opt => opt.AddPolicy("CorsPolicy", c =>
c.AllowAnyOrigin()
.AllowAnyHeader()
.AllowCredentials()
.AllowAnyMethod();
));
【讨论】:
谢谢这是问题以上是关于请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章
AJAX 请求获取“请求的资源上不存在‘Access-Control-Allow-Origin’标头”错误
django中的“请求的资源上不存在'Access-Control-Allow-Origin'标头”
Http.post 请求的资源上不存在“Access-Control-Allow-Origin”标头
如何解决请求的资源上不存在“Access-Control-Allow-Origin”标头