无法访问 MVC 6 API
Posted
技术标签:
【中文标题】无法访问 MVC 6 API【英文标题】:Unable to access MVC 6 API 【发布时间】:2016-02-08 03:20:05 【问题描述】:我目前正在创建一个包含一些 API 的 MVC 6 项目(beta 8)。除此之外,还有一个附带的 Word 应用程序,它与这些 API 对话(目前只是 GET 方法),但是我所有的 ajax 从 Word 应用程序获取 JSON 请求都会导致“错误:访问被拒绝”。消息。
经过大量搜索,我认为这可能是 CORS 问题,因此我在我的 startup.cs 中通过将以下内容添加到 ConfigureServices 中启用了此功能:
services.AddCors(options =>
options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin());
);
然后
app.UseCors("AllowAllOrigins");
进入配置,但这没有什么区别,我仍然只是收到拒绝访问的消息。我尝试调整我的 CORS 选项以允许所有方法并尝试了各种其他选项,包括添加
[EnableCors("AllowAllOrigins")]
关于行动,但同样没有区别。
我在本地运行这两个项目并通过浏览器手动导航到 api 会毫无问题地返回结果,我的 swashbuckler 设置也是如此。
我在这里遗漏了什么明显的东西吗?
【问题讨论】:
可能已经解决了这个问题。我的 MVC 应用程序作为 HTTP 运行,但 VS2015 中的默认办公应用程序项目是在启用 SSL 的情况下创建的。现在,在 office 应用上打开 SSL 可以让我毫无问题地连接。 【参考方案1】:根据我的经验,某些浏览器在通过 SSL 连接时不允许通配符响应允许来源(这是您在使用 AllowAllOrigins 时得到的)。如果您需要您的流量通过 SSL,您需要使用允许的来源列表而不是通配符进行响应。
This answer 有一个很好的方法。
【讨论】:
以上是关于无法访问 MVC 6 API的主要内容,如果未能解决你的问题,请参考以下文章
[Mvc&Core]记录部署好的应用程序突然无法访问的一次蹩脚经历!
[Mvc&Core]记录部署好的应用程序突然无法访问的一次蹩脚经历!