在Android上发出Ajax请求会返回No Transport错误

时间:2011-02-24 12:18:48

标签: android jquery cordova

我使用Phonegap在Android上开发了一个示例应用程序 单击按钮时,会向服务器发出Ajax请求( http://192.168.0.199:8080/test.php )。 test.php 只是回应 hello world 我使用 Jquery 1.5 进行Ajax调用。

以下是Ajax调用的代码:

$.ajax({  
 url:"http://192.168.0.199:8080/test.php",  
 beforeSend: function(x) {
 alert("The URL "+url);  
},
type:'POST',  
crossDomain: true,
success:function(data) {  
  alert(data);  
},  
error:function(XMLHttpRequest,textStatus, errorThrown) {     
 alert("Error status :"+textStatus);  
 alert("Error type :"+errorThrown);  
 alert("Error message :"+XMLHttpRequest.responseXML);  
}
});    

但是,每次调用此函数时,都会抛出错误:

Error Type: No Transport
Error Message: undefined
Error Status: error

注意:我在Manifest文件中添加了INTERNET权限。我正在使用运行Android 1.6的G1设备

提前致谢

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试拨打本地网络中的客户端 尝试验证您是否可以访问该本地网络。

答案 1 :(得分:1)

从jQuery 1.5开始,一个新的AJAX / XHR实现正在使用中。 Android 1.5 / 1.6并没有说它支持CORS(跨域调用)。所以“修复”的方法是通知jQuery它 支持cors:

jQuery.support.cors = true;

我无法在2.1及更高版本上重现这个问题。所以我希望该版本的XHR实现确实说它支持cors。