JQuery Как узнать, что такое ошибка ajax? - PullRequest
19 голосов
/ 05 февраля 2010

У меня есть следующий фрагмент кода, который я просто пробую, запустив в firebug

$.ajax({
  type:"POST",
  url:"http://mpdomain/WebService.asmx/Operation",
  data: "{'parameter1': '44906'}", 
  contentType: "application/json;charset=utf-8",
  dataType: "json",
  success: function(data) { alert("succsess") },
  error: function(e, ts, et) { alert(ts) }
})

Теоретически это должно работать. Однако обработчик ошибок запускается, и ts просто устанавливается на «error». Как я могу получить более подробную информацию о том, что пошло не так?

Ответы [ 2 ]

31 голосов
/ 05 февраля 2010
$.ajax({
  type:"POST",
  url:"http://mpdomain/WebService.asmx/Operation",
  data: "{'parameter1': '44906'}", 
  contentType: "application/json;charset=utf-8",
  dataType: "json",
  success: function(data) { alert("succsess") },
  error: function(ts) { alert(ts.responseText) }
})
5 голосов
/ 05 февраля 2010

Сообщение об ошибке, которое выдает jQuery, не очень наглядно. Это может быть «timeout», «error», «notmodified» или «parsererror». http://api.jquery.com/jQuery.ajax/ Итак, вы можете сделать вывод, что это не ошибка тайм-аута, не измененная или анализируемая ошибка.

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

Также я не уверен, что это проблема, но попробуйте установить для данных значение {параметр1: 44906} (в основном удаляйте кавычки, чтобы передать объект, а не строку).

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