我正在尝试登录我的应用程序。它应该返回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, *
来自哪里......
答案 0 :(得分:0)
由于Visual Studio中的输出窗口,我找到了罪魁祸首。我不知道为什么,但Visual没有使用null引用崩溃,只将其记录到输出。
无论如何,问题是Git没有附加appsettings,我存储我的JwtIssuer变量来生成Jwt,所以它得到null而不是字符串。
感谢@Kirk指出我正确的方向!