2013-08-09 2 views
0

Мне нужно отправить и получить некоторые простые данные с помощью моего мобильного приложения. Я делаю это с помощью функции jquery $ .post, но она кажется очень неустойчивой.Ненадежный POST с ajax

Проблема: Часто, как 1 из 10 раз, отправляется POST, но функция обратного вызова никогда не запускается. Я знаю с серверов, что POST получен и данные возвращены, но часто на клиентском столе ничего не происходит.

$.post(url, { 'username': username, 'password': password }, 
function(data) { 
    if (data.Message == "Ok") { 
     alert("Logged in OK."); 
    } else if (data.Message == "Error") { 
     alert("Error. Check username and password."); 
    } else { 
     alert("An unknown error has occured."); 
    } 
}); 

Времена, когда ничего не происходит на стороне клиента (даже если я вижу, данные были отправлены на сервер) - запуск функции снова не работает. Мне нужно перезагрузить всю страницу и повторить попытку - и тогда все будет работать нормально.

Настройка jquery вместе с Kendo UI Mobile.

Есть ли другой, более надежный способ сделать этот запрос POST с помощью JavaScript?

+0

Это URL-адрес, по которому вы отправляете запрос в тот же домен? Попробуйте настроить обработчик 'error', который вы можете использовать для опроса ответа и получения возвращаемого кода HTTP и сообщения об ошибке. –

+0

Спасибо за подсказку, я попробую. URL-адрес находится в другом домене - приложение находится на телефоне пользователя, в то время как URL-адрес является внешним. – Publicus

ответ

1

запросов AJAX может не по какой-либо причине, и вы могли бы работать вокруг этого, давая пользователю возможность повторно представить и на стороне сервера, что вы делаете то, что проверка, чтобы избежать дубликатов ..

Или вы можете использовать время ожидания проверить это http://api.jquery.com/jQuery.ajax/

  • таймаутов для JSONP запросов доступны от v1.5
0

Я предполагаю, что это должно быть изменено. я просто пробовал и работал

$.post(url, { 'username': username, 'password': password }, 
    function(data) { 
     if (data == "Ok") { 
      alert("Logged in OK."); 
     } else if (data == "Error") { 
      alert("Error. Check username and password."); 
     } else { 
      alert("An unknown error has occured."); 
     } 
    }); 

спасибо.