我正在尝试覆盖XMLHTTPRequest行为,以便在本机应用程序(将处理https证书身份验证质询)的情况下将Ajax请求委托给phonegap插件。
如果应用程序在本机容器中运行,
我的应用必须使用相同的源代码在本机和Web上下文中运行。开发人员可以无缝地进行Ajax调用。
以下是我正在尝试做的示例代码:
XMLHttpRequest.prototype.send = function() {
var me = this;
me.abort();
cordova.exec(function(httpresult) {
// Query success
// httpresult object contains http response headers and content
// How can onreadystatechange be triggered ???
me.onreadystatechange(httpresult);
}, function(httpresult) {
// Query failure
}, "QueryPlugin", "query", [{
url: me.url,
method: me.method,
data: me.data
// other http query params
}]);
}
我不知道如何将http标头和内容正确传递给当前的XMLHttpRequest实例以及如何触发onreadystatechange方法。
提前致谢,
答案 0 :(得分:1)
Cordova / phonegap为一些提供附加功能的平台开箱即用,重新定义了XMLHttpRequest对象,例如对于Windows Phone,它以下列方式执行此操作
https://github.com/apache/incubator-cordova-js/blob/master/lib/wp7/plugin/wp7/XHRPatch.js
您可能希望以相同的方式执行某些操作或扩展您平台的现有实施。