如何在ASP.net Core WebAPI中启用CORS

我要做什么


我有一个在Azure免费计划上托管的后端ASP.Net Core Web API(源代码:https : //github.com/killerrin/Portfolio-Backend)。


我也有一个客户网站,我想使用该API。客户端应用程序不会托管在Azure上,而是托管在Github Pages或我有权访问的另一个Web托管服务上。因此,域名将无法排列。


考虑到这一点,我需要在Web API端启用CORS,但是现在我已经尝试了几乎所有内容几个小时,并且它拒绝工作。


我如何进行客户端设置 它只是一个用React.js编写的简单客户端。我正在通过Jquery中的AJAX调用API。React站点可以正常工作,所以我不知道。正如我在尝试1中确认的那样,对Jquery API的调用有效。这是我进行调用的方式


    var apiUrl = "http://andrewgodfroyportfolioapi.azurewebsites.net/api/Authentication";

    //alert(username + "|" + password + "|" + apiUrl);

    $.ajax({

        url: apiUrl,

        type: "POST",

        data: {

            username: username,

            password: password

        },

        contentType: "application/json; charset=utf-8",

        dataType: "json",

        success: function (response) {

            var authenticatedUser = JSON.parse(response);

            //alert("Data Loaded: " + authenticatedUser);

            if (onComplete != null) {

                onComplete(authenticatedUser);

            }

        },

        error: function (xhr, status, error) {

            //alert(xhr.responseText);

            if (onComplete != null) {

                onComplete(xhr.responseText);

            }

        }

    });


蝴蝶刀刀
浏览 1008回答 3
3回答

LEATH

在ConfigureServices中添加  services.AddCors(); BEFORE services.AddMvc();。在配置中添加UseCorsapp.UseCors(builder => builder    .AllowAnyOrigin()    .AllowAnyMethod()    .AllowAnyHeader()    .AllowCredentials());   app.UseMvc();要点是app.UseCors在之前添加app.UseMvc()。确保在MVC之前声明CORS功能,以便在MVC管道获得控制并终止请求之前触发中间件。完成上述方法后,您可以对其进行更改,将其配置为特定的起源以接受api调用,并避免让您的API向任何人开放public void ConfigureServices(IServiceCollection services){    services.AddCors(options => options.AddPolicy("ApiCorsPolicy", builder =>    {        builder.WithOrigins("http://localhost:4200").AllowAnyMethod().AllowAnyHeader();    }));    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);}在configure方法中,告诉CORS使用您刚创建的策略:app.UseCors("ApiCorsPolicy");app.UseMvc();我刚刚找到了该主题的紧凑文章-https: //dzone.com/articles/cors-in-net-core-net-core-security-part-vi
打开App,查看更多内容
随时随地看视频慕课网APP