我正在为web服务开发一个基于Range6客户机和ASP.NET核心WebAPI的web应用程序。
目前(初始开发阶段),我有一个简单的体系结构,由两个web服务组成,一个用于管理身份验证和身份,另一个包含应用逻辑(业务逻辑,更新db,ecc.)。
我使用JWT Bearer令牌进行客户端身份验证。
我的身份验证服务一切正常,但是当我试图调用应用程序服务时,我在Chrome浏览器控制台中获得了这个错误:
加载http://localhost:59207/api/Files/Upload失败:请求的资源上没有“访问-控制-允许-原产地”标头。因此,“http://localhost:4200”源是不允许访问的。响应具有HTTP状态代码500。
此错误之前还有另一个错误:
POST http://localhost:59207/api/Files/Upload 500 (内部服务器错误)
在某种程度上,我得到的第二个错误是否与它前面的内部服务器错误有关?
我测试我的邮递员的电话,一切正常,没有服务器端的错误和我想从我的服务返回的数据。
我已经把我所知道的关于ASP.NET核心中CORS的所有东西都准备好了。
名为"ConfigureServices“的启动类方法包含,作为第一行:
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
然后在“配置”方法中调用它:
app.UseCors("AllowAll");
此外,我还将EnableCors属性放在每个控制器类上,如下所示:
[EnableCors("AllowAll")]
有人知道我该怎么摆脱这个烂摊子吗?据我所知,这就是CORS的用途,我已经让它在其他项目上以这种方式运行(但从未使用过ASP.NET核心2)。
提前谢谢你
发布于 2018-08-20 15:38:00
这可能不是你的情况的答案,但我经常遇到这个问题在过去。当两个localhost
之间就POST
请求进行对话时,这是一个POST
问题。
尝试使用另一个浏览器,看看它是否有效;如果是,您可以通过禁用Chrome
继续使用Security
。
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
希望这能有所帮助。
https://stackoverflow.com/questions/51933526
复制相似问题