2017-01-17 6 views
0

У меня есть следующий код, как Aprt моего .ajax разделаJQuery Ajax - ошибка работает, даже если он побежал успешно

success: function (data) { 
    alert("success"); 
}, 
error: function(xhr, ajaxOptions, thrownError) { 
    alert(xhr.status); 
} 

Первое предупреждение никогда не работает, однако данные, представленные правильно, используя ниже:

data: JSON.stringify({ "solution": JSON.stringify(data) }), // Data is HTML 

Фактически второе предупреждение возвращается со статусом 200, и все через консоль Google Chrome выглядит нормально.

Любая идея? Полный код:

var request = jQuery.ajax({ 
    url: "/answers/"+content_id, 
    type: "POST", 
    data: JSON.stringify({ "solution": data }), 
    dataType: "json", 
    headers: { 
     Authorization: 'Basic XXX', 
     'X-HTTP-Method-Override': 'PATCH', 
     'Content-Type': 'application/json' 
    }, 
    success: function (data) { 
     alert("success"); 
    }, 
    error: function(xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     } 
}); 
+0

Что такое ответ JSON? – Rahi

+0

Проверьте другие аргументы на 'error', второй из которых на самом деле является' textStatus' в соответствии с [документацией] (http://api.jquery.com/jquery.ajax/). Это может быть «тайм-аут», «parseerror» или другая встроенная ошибка. –

ответ

2

Функция $ .ajax ожидает, что данные JSON будут откликаться. Если ответ не JSON, будет вызван обратный вызов ошибки. Посмотрите, что вы отправляете с сервера.

+0

application/json - ответ сервера – pee2pee

+0

Является ли код состояния 200? –

+0

Да, это ....... – pee2pee

0

Пожалуйста, проверьте некоторые вещи:

  1. Установите type: "GET" вместо поста. Посмотрите на это: GET OR POST

  2. Заголовки данных строка (имя/значение), и, возможно, ваш кодирования данных utf8 так установить

    headers: { 
    
        'Authorization': 'Basic XXX', //high recommended 
        'X-HTTP-Method-Override': 'PATCH', 
        'Content-Type': "application/json; charset=utf-8" //low 
    }, 
    
  3. тест другое слово вместо данных, чтобы избежать конфликта:

    success: function (response) 
    
+0

Пожалуйста, добавьте некоторое объяснение, почему этот код помогает OP. Это поможет обеспечить ответ, о котором могут узнать будущие зрители. См. [Ответ] для получения дополнительной информации. Сейчас это больше похоже на набор комментариев, чем на фактический ответ. –

+0

Спасибо, дорогой @ Майк МакКоган. Я отредактировал свой ответ. –

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