如何轻松使用现有的webapi服务?请注意,我的webapi服务位于"server1/api",Web应用程序位于"server2".我尝试更改dataservice中的服务名称,但获取XMLHttpRequest异常101.这是一个跨域错误.是否可以使用来自其他域的webapi服务的breeze?
War*_*ard 14
是的,可以从一台服务器获取Breeze客户端应用程序,并使该Breeze应用程序与托管在其他服务器上的数据服务进行通信.
当为CORS配置服务时,Breeze客户端应用程序在支持CORS的浏览器上运行得非常好.
跨域问题和CORS解决方案属于更常见的Web安全问题类别.它们不是Breeze特有的.我们计划在Breeze网站的"Cool Breezes"部分发布关于CORS + Breeze的主题.
此示例使用原始CORS实现,如果已升级到Web API2,我们不再推荐这种实现.请阅读这篇优秀的文章"ASP.NET Web API 2中的CORS支持",它解释了基本的CORS以及如何使用Web API2 CORS支持.
这个答案的其余部分仍然是最初写的.
在此之前,请查看Todo示例的代码.该示例的服务器已设置为CORS,已部署到todo.breezejs.com,您可以通过查看Breeze Todo示例主题页面底部的jsFiddle来查看它.
四个兴趣点:
App_Start/BreezeSimpleCorsHandler.cs完成了这项工作
App_Start/BreezeWebApiConfig.cs将其打开
// CORS enabled on this server GlobalConfiguration.Configuration.MessageHandlers.Add(new BreezeSimpleCorsHandler());
一个Web.config文件 行你所需要的IIS7(不需要IIS8或VS2012的IIS快递)
Scripts/app/dataservice.js已准备好指向外部服务器; 看到这一行:
// *交叉原始服务示例* // var serviceName =' http ://todo.breezejs.com/api/todos '; //不同来源的控制器
希望你现在能够嘲笑你.
| 归档时间: |
|
| 查看次数: |
3632 次 |
| 最近记录: |