0

我在基于 John Papa 的 HotTowel 的项目中使用微风时遇到问题。我将微风配置为:

var mgr = new breeze.EntityManager('breeze/Breeze');

一切都很好,但如果我将项目属性Start Action从更改Current PageSpecific Page: HotTowel/Index并且微风无法正常工作。

我已经使用 firebug 检查了请求。在这种情况下,应用程序似乎发送了GET这样的请求:

http://localhost:53180/HotTowel/Index/breeze/Breeze/Metadata

代替

http://localhost:53180/breeze/Breeze/Metadata

我还检查了这部分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 调用(或微风)取决于项目的激活方式?

4

2 回答 2

1

在配置中添加一个/字符以执行相对于基目录的请求:

var mgr = new breeze.EntityManager('/breeze/Breeze');
于 2014-03-20T15:35:04.970 回答
0

发生这种情况的原因是因为您为 EntityManager 指定了相对路径,如果您的 url 是 localhost:53180/HotTowel/Index,那么 EntityManager 的相对 url 是 localhost:53180/HotTowel/Index + /breeze/Breeze。

要更正此问题,请将您的 EntityManager 路径更改为以下内容:

var mgr = new breeze.EntityManager('breeze/Breeze');
于 2013-06-27T12:17:31.540 回答