我有一个minor...or也许是专业的..关于微风的问题..我目前的设置是我有两个项目..托管breeze-api的一个web-api项目..另一个项目是托管客户端应用程序,该应用程序应该使用api。这将提供两个不同的端口,api和客户端在这两个端口上运行。
所以我的问题是。有没有办法让微风在跨域上工作?或者,breeze只被构建为在其自己的域中使用?
提前感谢!
发布于 2013-03-20 11:22:38
跨域是没有问题的。
好的,有一个问题,但这不是微风问题。您正在与困扰我们所有人的浏览器的"Same Origin Policy“搏斗。
你可以绕过它。唯一的问题是你想怎么做。这个问题从“你将支持什么浏览器”开始。如果是IE10+和最新的Chrome和FF,你应该使用CORS。如果老的浏览器和歌剧...你将不得不打一场JSONP之战。
请给我建议。
猜猜我更喜欢哪一个?在Breeze已经有一个CORS样本了。这是你用the downloads得到的the Todo sample。它还没有被记录下来,但它就在那里等着你。
发布于 2015-03-22 15:59:06
Ward'd的解决方案非常正确,我只是添加了一个更直接的解决方案。
现在执行此操作,安装软件包。
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: "*")]再次更改这里的原点,记住在url的末尾不要有反斜杠。
https://stackoverflow.com/questions/15512850
复制相似问题