ASP NET CORE – ANGULAR NO’Access-Control-Allow-Origin’标头出现在请求的资源上

ASP NET CORE – ANGULAR NO’Access-Control-Allow-Origin’标头出现在请求的资源上,第1张

概述可能会多次询问此问题,但在线提供的解决方案对我不起作用. 在我们的项目中,我们使用WebMethod作为Asp.Net页面处理数据库,或者如果我这样说,我们有一个WebApi: – http://server/Pages/ApplicationData.aspx/GetApplicationLookups 现在我们有一个AspNet Core Angular Web应用程序,它调用了这个API p 可能会多次询问此问题,但在线提供的解决方案对我不起作用.

在我们的项目中,我们使用WebMethod作为Asp.Net页面处理数据库,或者如果我这样说,我们有一个WebAPI: –

http://server/Pages/ApplicationData.aspx/GetApplicationLookups

现在我们有一个AspNet Core Angular Web应用程序,它调用了这个API

postgetGetApplicationLookups(url: string) {    var headers = new headers();    headers.set('Accept','application/Json; charset=utf-8');    headers.set('content-Type','application/Json; charset=utf-8');    let data = {};    deBUGger;    return this.http.post(        url,data,{ headers: headers }    )        .map(this.handleSuccess)        .catch(this.handleError)}

我收到以下错误: –

如果我使用POSTMAN,这个POST调用工作正常: –

我使用以下代码修改了我的Startup.cs但我仍然得到相同的错误.

public Startup(IConfiguration configuration)    {        Configuration = configuration;    }    public IConfiguration Configuration { get; }    public voID ConfigureServices(IServiceCollection services)    {        services.AddCors(options => options.AddPolicy("AllowAll",p => p.AllowAnyOrigin()           //Fix API ISSUE                                                                    .AllowAnyMethod()               //Fix API ISSUE                                                                     .AllowAnyheader()));           //Fix API ISSUE        services.AddMvc();    }    public voID Configure(IApplicationBuilder app,IHostingEnvironment env)    {        if (env.IsDevelopment())        {            app.UseDeveloperExceptionPage();            app.UseWebpackDevMIDdleware(new WebpackDevMIDdlewareOptions            {                HotModuleReplacement = true            });        }        else        {            app.UseExceptionHandler("/Home/Error");        }        app.UseStaticfiles();        app.UseCors("AllowAll");                app.UseMvc(routes =>        {            routes.MapRoute(                name: "default",template: "{controller=Home}/{action=Index}/{ID?}");            routes.MapSpaFallbackRoute(                name: "spa-fallback",defaults: new { controller = "Home",action = "Index" });        });    }

我的错误是: – 无法加载http://server/Pages/ApplicationData.aspx/GetApplicationLookups:对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头.因此不允许原点’http://localhost:60602‘进入.

任何想法,我可能会失踪.

谢谢

解决方法 在向StartUp.cs添加内容时,顺序很重要.

在ConfigureServices函数中,您需要在AddCors调用后进行AddMvc调用.

services.AddCors(options =>{    options.AddPolicy("AllowAll",p =>    {        p.AllowAnyOrigin()        .AllowAnyheader()        .AllowAnyMethod();    });});...services.AddMvc(); // must be after AddCors

在Configure函数中,只需使用一个UseCors调用:

app.UseCors("AllowAll");app.UseMvc();

并且,确保在UseMvc调用之前调用它.

希望这可以帮助.

总结

以上是内存溢出为你收集整理的ASP NET CORE – ANGULAR NO’Access-Control-Allow-Origin’标头出现在请求的资源上全部内容,希望文章能够帮你解决ASP NET CORE – ANGULAR NO’Access-Control-Allow-Origin’标头出现在请求的资源上所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1239791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存