jQuery $ .post - как вызвать функцию обратного вызова в случае сбоя $ .post и если ответ не соответствует ожидаемому типу - PullRequest
0 голосов
/ 26 февраля 2010

Вот в чем дело, у меня есть обработчик события jquery click, который вызывает сообщение по клику.

Ожидаемый тип (4-й параметр $ .post ()) - "json". Однако на серверная сторона; Есть два ответа на пост: это либо json, либо html-ответ. Проблема в том, что если он возвращает html, функция обратного вызова не вызывается (потому что $ .post ожидает json?).

Как я могу на это отреагировать? Я хочу что-то, что если серверный скрипт возвращает JSON, выполнить обратный вызов, в противном случае сделать другой. Это возможно? Могу ли я проверить тип ответа с помощью $ .post?

1 Ответ

2 голосов
/ 26 февраля 2010

Скорее всего, вы захотите использовать общую функцию jquery.ajax . В частности, свойство dataType: 'text' должно позволять вам анализировать возвращаемое значение любым подходящим для вас методом. Вы также можете использовать функцию parseJSON

$.ajax({
  url: 'url',
  type: 'post'
  dataType: 'text',
  success: function(text) {
     if  (json) {
         var obj = $.parseJSON(text);
     } else {
         var html = $(text);
     }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...