【发布时间】:2017-07-04 02:36:28
【问题描述】:
是否可以覆盖 XMLHttpRequest 并模拟来自回调的响应?
类似:
window.XMLHttpRequest.prototype.open = function() {
var url = arguments[1];
if (url === 'someUrl' && isOnline === false){
//Return a fake reponse to the request...
}
...
}
在我的 phonegap 应用程序中执行此操作非常好,因此如果用户离线,我可以从本地 sqlite 数据库检索响应。
【问题讨论】:
-
你试过了吗?使用
open返回值并不能模拟 XMLHttpRequest 的实际工作方式,因此您需要重新考虑整个想法 - 但是,与其摆弄 XHR 的内部结构,不如有条件地使用 XHR -if (url === 'someUrl' && isOnline === false){ fake the response } else { use XHR } -
XHR 请求是由 JS 框架发出的,这就是我想模拟成功或错误响应的原因..
-
不要让你的手被“原型”弄得一团糟......我建议使用网络插件来检测设备是否离线......并使用 IF 语句来选择从互联网或运行一个函数来处理本地请求。
标签: javascript cordova xmlhttprequest python-requests phonegap