2

我有一个小问题......或者可能是大问题..有关轻率js的问题..我目前的设置是我有两个项目..一个托管微风api的web-api项目..另一个托管客户端应用程序的项目那应该消耗api ..这将为我提供api和客户端运行的两个不同端口..

所以我的问题是......有没有办法让微风在跨域上工作?..还是微风只用于在自己的域内使用?

提前致谢!

4

2 回答 2

3

跨域没问题。

好的,有一个问题,但这不是微风问题。您正在与困扰我们所有人的浏览器“同源策略”作斗争。

你可以绕过它。唯一的问题是你想怎么做。这个问题从“你将支持哪些浏览器”开始。如果 IE10+ 和最新的 Chrome 和 FF,你应该去CORS。如果旧浏览器和 Opera ......你将不得不打JSONP的战斗。

请指教。

轻推:猜猜我更喜欢哪一个?Breeze 中已经有一个 CORS 示例……它是您通过下载获得的 Todo 示例。它还没有记录在案,但它在那里等着你。

于 2013-03-20T03:22:37.663 回答
0

Ward 的解决方案非常正确,我只是添加了一个更直接的解决方案。

现在执行此安装包。

Microsoft.AspNet.WebApi.Cors

然后将其添加到 web.config

<system.webServer>
<httpProtocol>
<customHeaders>
  <add name="Access-Control-Allow-Origin" value="*"/>
  <add name="Access-Control-Allow-Headers" value="Content-Type"/>
  <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS"/>
</customHeaders>
</httpProtocol>
</system.webServer>

将“Access-Control-Allow-Origin”更改为您的其他站点 * 存在安全风险,因为它允许所有人使用它进行开发

然后将此 altribrute 添加到您希望访问的资源中

[EnableCors(origins: "*", headers: "*", methods: "*")]

再次在这里更改原点,也请记住网址末尾没有反斜杠。

于 2015-03-22T07:59:05.680 回答