ASP.NET没有返回响应,Angular说没有'Access-Control-Allow-Origin'标题存在 - 但是有?

时间:2017-11-09 14:18:42

标签: angular asp.net-web-api asp.net-core cors

我正在尝试登录我的应用程序。它应该返回JWT令牌,当我调试后端它工作时 - 通过方法返回到return语句。问题是,我的前端没有得到它。浏览器的网络跟踪器说它返回204 No Content, console logs 500 (Internal Server Error)和:

  

“对预检请求的响应未通过访问控制检查:   'Access-Control-Allow-Origin'标头包含多个值   'http://localhost:4200,*',但只允许一个。起源   因此,“http://localhost:4200”不允许访问。“

首先它说没有Access-Control-Allow-Origin标头,但我添加了

<add name="Access-Control-Allow-Origin" value="*" />

到我的webconfig,现在错误如上所述。

问题是,我有一个不同的应用程序运行那些完全相同的设置,它没有问题:/唯一不同的是我在这一个中使用Identity和Jwt令牌,但它不应该影响应用程序。

在启动时,我启用了角色并使用了这些选项:

app.UseCors(builder =>
   builder.AllowAnyOrigin()
   .AllowAnyMethod()
   .AllowAnyHeader()
   .AllowCredentials());

这应该足以允许任何来源,不应该吗? 我也有

  

Access-Control-Allow-Origin:* on response headers

不知道控制台中的localhost:4200, *来自哪里......

1 个答案:

答案 0 :(得分:0)

由于Visual Studio中的输出窗口,我找到了罪魁祸首。我不知道为什么,但Visual没有使用null引用崩溃,只将其记录到输出。

无论如何,问题是Git没有附加appsettings,我存储我的JwtIssuer变量来生成Jwt,所以它得到null而不是字符串。

感谢@Kirk指出我正确的方向!