我在基于John Papa的HotTowel的项目中使用breeze时遇到了问题。我配置了微风:
var mgr = new breeze.EntityManager('breeze/Breeze');
一切正常但是在我将项目属性Start Action
从Current Page
更改为Specific Page: HotTowel/Index
并且breeze无法正常工作的情况下。
我已经使用firebug检查了请求。在这种情况下,应用程序似乎发送GET
请求,如下所示:
http://localhost:53180/HotTowel/Index/breeze/Breeze/Metadata
而不是
http://localhost:53180/breeze/Breeze/Metadata
我还检查了要发送get请求的breeze.js
部分。
在两种情况下,url
参数都设置为breeze/Breeze/Metadata
,这似乎是正确的。
ctor.prototype.fetchMetadata = function (metadataStore, dataService) {
var serviceName = dataService.serviceName;
var url = dataService.makeUrl("Metadata");
var deferred = Q.defer();
var that = this;
ajaxImpl.ajax({
url: url,
dataType: 'json',...
我也尝试了~/breeze/Breeze
,但它不能用作远程服务名称。
由于我是网络新手,可能与微风无关。 问题是为什么ajax调用(或微风)取决于项目如何激活?
答案 0 :(得分:1)
在配置中添加/
字符,以执行相对于基目录的请求:
var mgr = new breeze.EntityManager('/breeze/Breeze');
答案 1 :(得分:0)
发生这种情况的原因是因为您指定了EntityManager的相对路径,如果您的url是localhost:53180 / HotTowel / Index,那么EntityManager的相对URL是localhost:53180 / HotTowel / Index + / breeze / Breeze
要解决此问题,请将EntityManager路径更改为以下内容:
var mgr = new breeze.EntityManager('breeze/Breeze');