如何在控制台中禁用 Dojo 的 JsonRest 查询的错误日志记录?
How can I disable error logging in console for a Dojo's JsonRest query?
我的项目使用 JsonRest 存储来访问它的数据。一切正常。问题是,当服务器 return 出现错误时,即使调用了正确的代码部分,并且功能正常运行,对象也会向控制台记录一个难看的错误。
我的代码:
function loadData() {
self.storeItem.query({
'id_metric' : self.selectMetrics.value,
'id_client' : self.selectClients.value
}).then(
(res) => populateResults(res),
()=>{
// this is called correctly...
query('.res').forEach(domConstruct.destroy);
domConstruct.place('<tr class="sem res"><td>No results</td></tr>', "tableLines", 'first');
}
);
}
.
// ..but this is logged in console:
Object { message: "Unable to load http://localhost:300…", stack: ".cache["dojo/errors/create"]/</</_3…", response: Object, status: 404, responseText: "{"errors":["Not found…",
xhr: XMLHttpRequest }
如何让商店不显示错误?
我知道我可以将服务器行为更改为 return 代码 200 结果而不是 404。但我想要的只是让它不将错误发送到控制台。
错误由 dojo/_base/xhr 记录,由 dojo/store/JsonRest 在内部使用。除非您准备实施自己的商店,否则我看不到一种干净的方法来抑制它。如果你是,你可以这样做:
dojo/_base/xhr 有一个 failOk 参数,它完全符合您的要求,但 dojo/store/JsonRest 不使用它,默认值为 false(将错误记录到控制台)。所以可以复制JsonRest的源码,在所有的xhr调用中加上failOk: true
。比如在查询函数中:
var results = xhr("GET", {
url: this.target + (query || ""),
handleAs: "json",
headers: headers,
failOk: true
});
您仍然可以在错误处理函数中处理错误。
我的项目使用 JsonRest 存储来访问它的数据。一切正常。问题是,当服务器 return 出现错误时,即使调用了正确的代码部分,并且功能正常运行,对象也会向控制台记录一个难看的错误。
我的代码:
function loadData() {
self.storeItem.query({
'id_metric' : self.selectMetrics.value,
'id_client' : self.selectClients.value
}).then(
(res) => populateResults(res),
()=>{
// this is called correctly...
query('.res').forEach(domConstruct.destroy);
domConstruct.place('<tr class="sem res"><td>No results</td></tr>', "tableLines", 'first');
}
);
}
.
// ..but this is logged in console:
Object { message: "Unable to load http://localhost:300…", stack: ".cache["dojo/errors/create"]/</</_3…", response: Object, status: 404, responseText: "{"errors":["Not found…",
xhr: XMLHttpRequest }
如何让商店不显示错误?
我知道我可以将服务器行为更改为 return 代码 200 结果而不是 404。但我想要的只是让它不将错误发送到控制台。
错误由 dojo/_base/xhr 记录,由 dojo/store/JsonRest 在内部使用。除非您准备实施自己的商店,否则我看不到一种干净的方法来抑制它。如果你是,你可以这样做:
dojo/_base/xhr 有一个 failOk 参数,它完全符合您的要求,但 dojo/store/JsonRest 不使用它,默认值为 false(将错误记录到控制台)。所以可以复制JsonRest的源码,在所有的xhr调用中加上failOk: true
。比如在查询函数中:
var results = xhr("GET", {
url: this.target + (query || ""),
handleAs: "json",
headers: headers,
failOk: true
});
您仍然可以在错误处理函数中处理错误。