2015-03-19 2 views
1

Мне не удалось успешно выяснить, почему $ .ajax отказывается подключиться к Интернету в Phonegap. Тот же код хорошо работает в стандартном HTML-файле. В Access Origin установлено значение *.Phonegap + JQuery не подключается к интернету

Первоначально я думал, что Phonegap отказывается от подключения к Интернету. Однако он загружает JQuery и JQuery Mobile удаленно (по тегу ссылки). JQuery продолжает возвращать ошибку. Протестировано в JBoss Developer Studio (PG 4.1.2) и PG с помощью командной строки 4.3.

Ошибка, которую возвращает stringifying объект ошибки

error: {"readyStaate":4,"responseText":"{\n \"code\": 
\"ENOTFOUND\",\n \"errno\":\"ENOTFOUND\",\n \"syscall\":\:getaddrinfo\"\n}","responseJSON":{"code":"ENOTFOUND","errno":"ENOTFOUND","syscall":"getaddrinfo"},"status":500,"statusText":"error"} 

Javscript используется:

var app = { 
// Application Constructor 
initialize: function() { 
    this.bindEvents(); 

}, 
bindEvents: function() { 
    document.addEventListener('load', this.onDeviceLoad, false); 
    document.addEventListener('deviceready', this.onDeviceReady, false); 

}, 

onDeviceLoad: function() { 
    window.isAndroid = navigator.userAgent.match(/(android)/gi) != null; 

}, 

onlineEvent: function() { 

}, 

offlineEvent: function() { 

}, 

onDeviceReady: function() { 
    app.receivedEvent('deviceready'); 
    // online/offline must be set in onDeviceReady 
    document.addEventListener('online', this.onlineEvent , false); 
    document.addEventListener('offline', this.offlineEvent , false); 

    $.ajax({ 
     method: "POST", 
     url: "http://www.someserver/server.php", 
     data: { name: "John", location: "Boston" } 
    }) 
     .done(function(msg) { 
     alert("Data Saved: " + msg.posts); 
     console.log('NETWORK' + msg.posts); 
    }) 
     .fail(function(error) { 
     alert("error: " + JSON.stringify(error)); 
    }); 
}, 
receivedEvent: function(id) { 

}  
}; 

app.initialize(); 

Edit: Я знаю, что 500 ошибка. Я протестировал сервер. Он отлично работает с HTML5 и тем же вызовом JQuery AJAX. Я подозреваю, что есть что-то с Phonegap; между вызовом клиента JQuery и сервером, вызывающим ошибку.

Редактировать2: имя сервера является приватным. Строка устанавливается на реальный сервер на моем фактическом коде.

+0

'url:" http: //www.someserver/server.php "- это ... правильно? –

+0

Я изменил имя сервера. – JBWyatt4

ответ

2

jQuery не «подключается к Интернету». Это просто библиотека JavaScript. Отклик 500-статус вы получаете говорит вам, что сервер вы выкладываете на это erroring:

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

+0

А именно ваш -> url: "http: //www.someserver/server.php" <- в вашем ajax-запросе –

+1

Я должен был сказать, что знаю, что такое ошибка 500. someserver/server.php установлен на реальный сервер, имя закрыто, поэтому я его изменил. – JBWyatt4

+0

Я понимаю, что 'someserver' - это поддельный URL-адрес, который вы указали, но вы все еще вставили 500-й ответный код выше, что означает, что ваш * real * сервер возвращает этот ответ. – brianvaughn

-1

500 ошибка означает, что сервер вы пытаетесь достичь не существует.

Возможно, вам необходимо изменить url: "http://www.someserver/server.php" на адрес вашего сервера.

+1

Я должен был сказать, что знаю, что такое ошибка 500. http: //www.someserver/server.php установлен на реальный сервер, это имя является приватным, поэтому я его изменил. – JBWyatt4

+0

** Это неверно **. Ошибка '500' (любой код ответа HTTP, начинающийся с 5) означает, что клиент отправил _valid_ запрос на _valid_-адрес, но сервер не смог выполнить запрос. –

Смежные вопросы