2011-01-24 99 views
0

我想拦截应用程序中的所有dojo.xhr调用,以便在将此响应转发到处理函数(load,error等)之前检查HTTP响应的内容。你如何建议这样做?Dojo - 拦截XHR调用

回答

2

我相信你要找的是1.4中引入的djConfig变量ioPublish

http://dojotoolkit.org/reference-guide/releasenotes/1.4.html#io-pipeline-topics

此挂钩三个发布,您可以订阅主题:分别/dojo/io/load/dojo/io/error/dojo/io/done,这应该是类似于loaderrorhandle回调。

请记住,这是默认情况下关闭的,正是因为在每次执行的XHR上发布事件所带来的潜在开销。

0

请参阅Dojo文档中的Example 9。你正在寻找的是'句柄'回调方法。无论调用是否成功,都会调用此方法,并且如果这是您正在执行的操作,则可以使用它来显示响应中的数据。

回答了您的问题后,我注意到Dojo页面上的一些示例已损坏。这对这个图书馆未来的支持不是一个好兆头。毕竟这个 Dojo网站!他/她从未更新过的不只是一些雅虎的博客。此外,Google Insights Search on JQuery and Dojo明确表明JQuery在社区中获得市场份额,而Dojo则陷入困境。

除非有一些令人信服的理由继续使用Dojo,比如Comet特性,否则我建议任何人都应该选择使用哪个库来挑选JQuery,这是明显的赢家。

+0

感谢您的反馈意见。实际上,我希望在两者之间有一个“代理”。该代理函数将检查响应的内容(状态码和响应主体)。如果出现错误(例如用户未被授权),请提出弹出窗口并禁止调用回调(`load`,`error`)。如果一切正常,则允许调用回调。 – Dario 2011-01-24 13:04:00

+0

不知道这是可能的。该文件显示您的处理程序,处理程序必须充当您的代理,在其中检查授权等事情,然后转发到您的成功功能。 – jmort253 2011-01-25 03:36:35