我有一个durandal微风和knokouts SPA。服务器webapi返回异步任务>等待来自ravendb服务器的数据的列表。这个电话和往常一样:
var query = EntityQuery.from('Benefits')
.orderBy('benefitName');
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
始终返回queryFailed(404 Not found错误)。它不会等待数据。
如果我从没有数据库连接的服务器返回硬编码数据列表,则可以正常工作。
任何想法?
设置查询调用的超时是否是一种简单的方法?
答案 0 :(得分:1)
您可以使用AJAX适配器requestInterceptor
从v.1.4.12开始设置HTTP级超时和取消。请参阅文档"Controlling AJAX calls"。
您可以自定义Breeze AJAX适配器或完全替换它,如下所述:http://www.breezejs.com/documentation/customizing-ajax。
如果你正在使用jQuery ajax适配器,你可以尝试
// get the current default Breeze ajax adapter
var ajaxAdapter = breeze.core.config.getAdapterInstance("ajax");
// set fixed headers and timeout
ajaxAdapter.defaultSettings = {
headers: {
"Accept": "application/json, text/javascript, */*; q=0.01"
}
timeout: 8000,
};