Javascript 如何在Dojo的JsonRest查询的控制台中禁用错误日志记录?
我的项目使用JsonRest存储访问它的数据。一切都很好。问题是,当服务器返回错误时,即使调用了代码的正确部分,并且功能正常工作,对象也会将错误记录到控制台 我的代码:Javascript 如何在Dojo的JsonRest查询的控制台中禁用错误日志记录?,javascript,dojo,Javascript,Dojo,我的项目使用JsonRest存储访问它的数据。一切都很好。问题是,当服务器返回错误时,即使调用了代码的正确部分,并且功能正常工作,对象也会将错误记录到控制台 我的代码: function loadData() { self.storeItem.query({ 'id_metric' : self.selectMetrics.value, 'id_client' : self.selectClients.value }).then(
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');
}
);
}
如何使存储区不显示错误
我知道我可以更改服务器行为,以返回代码200而不是404的结果。但是我想要的只是使它不将错误发送到控制台。该错误由dojo/\u base/xhr记录,dojo/store/JsonRest在内部使用该错误。我看不到一个干净的方法来抑制它,除非您准备实现自己的存储。如果你是,这就是你能做的: 有一个failOk参数,它完全可以执行您想要的操作,但是dojo/store/JsonRest不使用它,默认值为false,将错误记录到控制台。因此,您可以复制JsonRest的源代码,并在所有xhr调用中添加failOk:true。例如,在查询函数中:
var results = xhr("GET", {
url: this.target + (query || ""),
handleAs: "json",
headers: headers,
failOk: true
});
您仍然可以处理错误处理函数中的错误。您可以发布您的代码完整的JsonRest代码吗?PS:我可以问您。。。从您的代码片段中,我看到您正在代码中使用箭头函数ES6语法。。。。您在使用dojo构建工具构建应用程序时有任何问题吗?我仍然不使用dojo构建工具。还是新手。抱歉。出于好奇,我测试了一个dojo应用程序,它使用了一些ES6语法,如arrow function=>不幸的是,在正常配置下,它破坏了dojo构建。我希望能对其他人有所帮助,那么你能看看JsonRest的完整代码吗?你是说实例化?这可能是一种方式。我不认为Dojo代码中的一个小改动会有多大影响。但我认为我们安装了不同版本的Dojo。dojo/_base/xhr在我的项目中有这样的内容:我找不到放置此选项的位置。我尝试了这一行:dojo.xhrGet{url:url,sync:true,load:functiontext{。但是它不起作用。我怎么能在这个版本中做到这一点呢?更改是针对dojo/store/JsonRest的,而不是针对dojo/_base/xhr的。您发布的版本也有failOk选项。另外,如果您使用declare创建自己的存储,而不是更改dojo源代码,那么会更干净。我将JsonRest代码复制到了一个lib文件夹中。更改了类na我向JsonRestNoError求助,并使用了该类。效果很好。谢谢。
var results = xhr("GET", {
url: this.target + (query || ""),
handleAs: "json",
headers: headers,
failOk: true
});