【问题标题】:Calling MVC controller method from a different application从不同的应用程序调用 MVC 控制器方法
【发布时间】:2017-09-24 06:03:38
【问题描述】:

我已将我的 MVC5 应用程序部署到 IIS,并且我的控制器上的方法之一返回一个 json 对象。当我浏览该网站时,该应用程序运行良好。如果我直接调用控制器上的方法,我可以在浏览器中看到 json 对象。

但现在我正在构建一个 Aurelia 应用程序并在 api 方法上进行获取。在 Chome 中,使用开发人员工具,在控制台下,我收到以下错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:55829' 因此不允许访问。

我需要对托管应用程序的 web.config 做些什么?

这就是我从 Aurelia 调用方法的方式:

http.fetch('http://localhost/MyCart/Home/GetProducts')
    .then(result => result.json())
    .then(data => {
        console.log(data.description);
});

【问题讨论】:

  • Aurelia 应用程序是否单独托管?如果它在自己的端口上,那么您需要启用 CORS 在两者之间进行通信。这取决于您使用什么库来提供 http,但它可能有一些您可以打开的“CORS”模式,并且服务器也需要 CORS 设置。
  • 通过在我的托管应用程序的 web.config 上启用 CORS 使其工作。 Aurelia 应用程序处于开发模式,因此尚未托管,仅通过 Visual Studio。

标签: json authentication xmlhttprequest aurelia


【解决方案1】:

我通过在我的托管应用程序的 web.config 上启用 CORS 使其工作:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2014-07-14
    • 1970-01-01
    • 2015-08-22
    相关资源
    最近更新 更多