我可以使用以下命令拦截 Dojo 1.6.1 xhr 请求IO 管道主题如此处所述:
Dojo - 拦截 XHR 调用 https://stackoverflow.com/questions/4781018/dojo-intercepting-xhr-calls
我想在 URL 中添加一个时间参数(例如&time=12345
)以防止缓存某些(或所有)xhr GET 请求,这些请求源自dojox.data.JsonRestStore
(我想要实现的细节是here https://stackoverflow.com/questions/14519695/how-to-disable-cache-in-extlib-rest-control-which-uses-dojox-data-jsonreststore)。我的代码如下所示:
dojo.subscribe("/dojo/io/send", function(deferred) {
if (deferred.ioArgs.url.indexOf("restService1") > -1) {
deferred.cancel();
deferred.ioArgs.url += '&time=12345' // test value at this point
dojo.xhrGet(deferrred.ioArgs);
}
});
基本上我试图取消请求,向 URL 添加一个字符串,然后使用修改后的 URL 发出请求。
这根本不起作用:修改 URL 的请求不会最终到达服务器,并且我在浏览器控制台收到很多这些错误:
错误发生在 dojo.js 的第 14 行。在出现这些错误后,Chrome 标签页最终会崩溃。
我也尝试过只是修改deferred.ioArgs.url
除此之外什么都不做,没有任何效果。
Both dojo/io/script
and dojo/xhr
have a preventCache
参数正是您想要做的事情。因此,您可以添加而不是尝试拦截preventCache: true
到请求参数?
http://dojotoolkit.org/reference-guide/1.6/dojo/io/script.html#dojo-io-script http://dojotoolkit.org/reference-guide/1.6/dojo/io/script.html#dojo-io-script
http://dojotoolkit.org/reference-guide/1.6/dojo/xhrGet.html#dojo-xhrget http://dojotoolkit.org/reference-guide/1.6/dojo/xhrGet.html#dojo-xhrget
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)