Asp.net web api 布里泽斯,跨域

Asp.net web api 布里泽斯,跨域,asp.net-web-api,breeze,Asp.net Web Api,Breeze,我有一个小调…或者可能是大调。。关于breezejs的问题。。 我目前的设置是我有两个项目。。一个承载breeze api的web api项目。。还有另一个项目,它承载了应该使用api的客户端应用程序。。 这将为我提供api和客户端运行的两个不同端口 所以我的问题是。。。有没有办法让breeze跨域工作?。。还是说breeze只在自己的领域内使用 提前谢谢 跨域没有问题 好的,有一个问题,但这不是一个轻松的问题。您正在与困扰我们所有人的浏览器“”进行斗争 你可以绕过它。唯一的问题是你想怎么做。这

我有一个小调…或者可能是大调。。关于breezejs的问题。。 我目前的设置是我有两个项目。。一个承载breeze api的web api项目。。还有另一个项目,它承载了应该使用api的客户端应用程序。。 这将为我提供api和客户端运行的两个不同端口

所以我的问题是。。。有没有办法让breeze跨域工作?。。还是说breeze只在自己的领域内使用


提前谢谢

跨域没有问题

好的,有一个问题,但这不是一个轻松的问题。您正在与困扰我们所有人的浏览器“”进行斗争

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

请告知


轻推:猜猜我更喜欢哪一个?微风中已经有一个CORS样本。。。这是你得到的。它还没有被记录,但它在那里等着你。

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

现在执行此操作并安装软件包

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>

再次更改此处的来源,请记住url末尾没有反斜杠。

Ok great:)。。我设法使CORS版本正常工作,谢谢:)但是如果我的客户有IE7及以上的要求,这将如何实现呢?。。我想这需要JSONP。。但是我该如何实现呢?。你能给我指出正确的方向吗:)JSONP更难。它还需要在服务器上做更多的工作,因为您的所有端点都必须理解JSONP,而且,顺便说一句,在JSONP中没有标准的方法来请求CUD操作。我们会有一些例子。。。最终。。。但老实说,这不是现在的首要任务。正如我所说,这是一个浏览器问题,而不是轻而易举的问题。您可以学习如何在其他地方设置服务器API,然后在准备在Breeze中使用它时来找我们。很抱歉目前我能提供的最好的。你有什么错误?检查是否未启用它们两次。。如果你有owin库,你可能需要一个不同的方法。我没有得到任何错误。我只得到0个实体。我没有两次启用它(拥有并修复了它)。我尝试了web api和owin库,得到了相同的结果。你确定吗?你怎么知道问题出在cross origns上呢?我确实从同一主机上获取了实体打开浏览器控制台或开发人员工具查看网络流量你可能会在那里发现错误。。。它可能只是帮助您解决问题的响应代码
[EnableCors(origins: "*", headers: "*", methods: "*")]