Выполнение Ajax-запроса на Android возвращает No Transport error - PullRequest
1 голос
/ 24 февраля 2011

Я разработал пример приложения для Android с помощью Phonegap.
При нажатии на кнопку сервер отправляет запрос 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

Примечание: я добавил разрешение ИНТЕРНЕТ в файле манифеста. Я использую устройство G1 под управлением Android 1.6

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Начиная с jQuery 1.5, используется новая реализация AJAX / XHR. И Android 1.5 / 1.6 не говорит, что он поддерживает CORS (междоменный вызов). Таким образом, способ исправить это - сообщить jQuery, что поддерживает cors:

jQuery.support.cors = true;

Я не мог воспроизвести проблему на 2.1 и выше. Поэтому я ожидаю, что реализация XHR из этой версии действительно говорит, что она поддерживает cors.

1 голос
/ 24 февраля 2011

Похоже, вы пытаетесь позвонить клиенту в локальной сети.
Попробуйте подтвердить, что у вас есть доступ к этой локальной сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...