加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP NET CORE – ANGULAR NO’Access-Control-Allow-Origin’标

发布时间:2020-12-16 04:00:06 所属栏目:asp.Net 来源:网络整理
导读:可能会多次询问此问题,但在线提供的解决方案对我不起作用. 在我们的项目中,我们使用WebMethod作为Asp.Net页面处理数据库,或者如果我这样说,我们有一个WebApi: – http://server/Pages/ApplicationData.aspx/GetApplicationLookups 现在我们有一个AspNet Cor
可能会多次询问此问题,但在线提供的解决方案对我不起作用.

在我们的项目中,我们使用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)
}

我收到以下错误: –

enter image description here

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

enter image description here

我使用以下代码修改了我的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调用之前调用它.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读