即使状态代码为200,回调也会失败

时间:2014-07-29 01:57:26

标签: angularjs asp.net-web-api odata breeze

我有一个odata,微风,有角度的应用。

请参见此处:http://bepozreports.azurewebsites.net/#/dashboard

你会注意到我设置了一个警告,说明回调失败了。

如果导航到app / js / controllers.js,您将看到此代码

accountFactory.getAll()
            .then(successCallback)
            .catch(failCallback);

即使调用http://bepozreports.azurewebsites.net/odata/Accounts?$ orderby = FirstName会导致正确的响应,也会调用failCallback吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果你调试你的应用并查看breeze.debug.js的第15199行,你会发现以下代码:

 OData.read({
     requestUri: url,
     headers: { "DataServiceVersion": "2.0" }
 },
 function (data, response) {
     var inlineCount;
     if (data.__count) {
         // OData can return data.__count as a string
         inlineCount = parseInt(data.__count, 10);
     }
     return deferred.resolve({ results: data.results, inlineCount: inlineCount });
 },
 function (error) {
    return deferred.reject(createError(error, url));
 });

此处使用您的网址触发错误回调,错误响应为message: "no handler for data"

微风报告错误。


在做了一点挖掘之后(我不熟悉datajs),看起来这个问题可能与你的CORS设置(或缺少它)有关。希望有所帮助。