从不同的应用程序调用MVC控制器方法
问题描述:
我已经将我的MVC5应用程序部署到IIS,并且我的控制器上的其中一个方法返回一个json对象。当我浏览到该网站时,该应用可以正常工作。如果我直接调用控制器上的方法,我可以在浏览器中看到json对象。从不同的应用程序调用MVC控制器方法
但现在我正在构建一个Aurelia应用程序,并在api方法上执行一次获取。在门牌号与开发工具,控制台下,我得到了以下错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:55829 ' is therefore not allowed access.
什么我需要做的,我的托管应用程序的web.config?
这是我特意打电话从Aurelia大街方法:
http.fetch('http://localhost/MyCart/Home/GetProducts')
.then(result => result.json())
.then(data => {
console.log(data.description);
});
答
我得到了它通过使我的托管应用程序的web.config CORS工作:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
是在Aurelia路上应用单独托管?如果它在自己的端口上,那么你需要启用CORS来在两者之间进行通信。这取决于你用来提供'http'的库,但它可能有一些你可以打开的“CORS”模式,服务器也需要CORS设置。 – thinkOfaNumber
通过在我的托管应用程序的web.config上启用CORS来获得它的工作。 Aurelia应用程序处于开发模式,因此只有通过Visual Studio才能托管。 –