无法访问 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]记录部署好的应用程序突然无法访问的一次蹩脚经历!

仍登录 MVC 站点,但无法调用 Web API

无法根据访问令牌对用户进行身份验证 - MS Graph API C#

无法访问已部署的 c# mvc 项目上的 dll 文件

在 Apache 上运行 ASP.net MVC 时无法访问 elmah.axd