我有一个轻微的......或者可能是关于breezejs的主要问题.. 我目前的设置是我有两个项目..一个web-api项目,托管breeze-api ..和另一个项目,托管应该使用API的客户端应用程序.. 这将给我两个不同的端口,api和客户端运行..
所以我的问题是......有没有什么方法可以轻松地在跨域工作?或者只是为了在自己的域内使用而构建的微风?
提前致谢!
答案 0 :(得分:3)
越过域名没问题。
好的有问题,但这不是一个微风问题。您正在与浏览器的“Same Origin Policy”进行斗争,这会困扰我们所有人。
你可以规避它。唯一的问题是你想怎么做。这个问题始于“您将支持哪些浏览器”。如果是IE10 +和最新的Chrome和FF,你应该去CORS。如果旧的浏览器和Opera ......你将不得不与JSONP战斗。
请指教。
轻推:猜猜我更喜欢哪一个?在Breeze中已经有一个CORS示例...... the Todo sample是the downloads。它还没有记录,但它在那里等着你。
答案 1 :(得分:0)
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: "*")]
再次更改原点,请记住网址末尾没有反斜杠。