对调用Web API本地主机/令牌URL生成令牌的400错误请求响应

时间:2019-06-06 10:10:22

标签: cors asp.net-web-api2 angular7 bearer-token

我已经为我的Web api启用了cors,并且目前对于所有allowanonymous方法都可以正常运行

        // Enable CORS for the Angular App
        var cors = new EnableCorsAttribute("http://localhost:4200", "*", "*");
        config.EnableCors(cors);        

但是当我尝试从我的有角度的应用程序访问下面的URL以获得令牌时,我得到了响应400 Bad Request。

    const userData = 'username=' + email + '&password=' + ppassword + '&grant_type=password';
    const reqHeader = new HttpHeaders(
        {
        'Content-Type': 'application/x-www-form-urlencoded',
        'No-Auth': 'True',
        'Access-Control-Allow-Origin': '*'
    });
    return this.http.post('http://localhost:59255/token', userData, {headers: reqHeader});

如果这完全是个问题,我该如何解决?

1 个答案:

答案 0 :(得分:0)

发布此信息是因为更多的人需要了解CORS有时如何如此棘手。我从WebApiConfig文件中完全删除了EnableCors代码。然后,将以下行添加到我的启动文件中

 public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

这解决了我的问题。 CORS如何集成到应用程序中的顺序肯定存在问题。随时添加更多