请求的资源发布请求上不存在“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”标头

获取请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头

Axios 请求已被 cors 阻止,请求的资源上不存在“Access-Control-Allow-Origin”标头