问题在于您的phonegap应用程序正在从非网络服务器请求本地文件。本地文件交付时没有HTTP头-这意味着没有“ 200 OK”头,也没有“ 404 Not
Found”错误。因此,假定状态码为0。
直接的javascript XHR将需要忽略状态并在readystate == 4(完成并准备就绪)上执行操作。像这样:
var myrequest = new XMLHttpRequest(); myrequest.open('GET','localfile.html'); myrequest.onreadystatechange = function(){ if(myrequest.readyState == 4) { var result = myrequest.responseText; } } myrequest.send();在MooTools中,在Request类中实现更改后的状态测试是一项相对简单的任务-将返回码测试更改为也接受0表示为true。像这样:
Request.implement({ isSuccess: function(){ var status = this.status; return ((status >= 200 && status < 300) || status === 0); }});jQuery ....关于jQuery,我想谈一谈-但我会坚持,因为这似乎是一个优雅的地方。
要为状态== 0准备jQuery,您需要使用always事件而不是success事件,您可以在那里测试状态代码。
$.ajax({ url: '/echo/html/', type: 'PUT', data: "email=a@b.com" }).always(function(data, textStatus, jqXHR){ switch(textStatus) { case 200: case 0: alert('Success.'); break; case 404: alert('oops'); break; } });Cordova / Phonegap中的Ajax-是的!



