невозможно получить ответный текст при ошибке 400 - PullRequest
7 голосов
/ 15 сентября 2011

Я работаю над соединением между front-web и службой отдыха.Мне удалось сделать междоменный вызов Ajax, но у меня все еще есть небольшая проблема.

Невозможно получить responseText при возникновении ошибки 400.

Я проверил с помощью wireshark, и я уверен, что responseText был отправлен REST.Но когда я смотрю в Firebug, я вижу следующее:

POST http: api.yutagz.com пользователи 400 Неверный запрос 133ms

Object {readyState = 0, status = 0, statusText= "error" responseText = ""}

'400 Bad Request' в порядке, но мне нужен responseText, чтобы сказать пользователю, что на самом деле происходит.

Вот мой звоноккод (работает над событием успеха):

$.ajax({
type: "POST",
url : "http://api.yutagz.com/users",
data: dataString,
dataType: 'json',
success : function(data,data1,data2){
    alert("OK : "+data);
    console.log(data2);
},
error:function (xhr){
    alert(JSON.stringify(xhr));
    console.log(xhr);
    switch (xhr.status) {
        case 404: alert("404");
        case 400: alert("400");
             // Take action, referencing xhr.responseText as needed.
    }
},
complete :  function (xhr){
    alert(JSON.stringify(xhr));
    console.log(xhr);
    switch (xhr.status) {
        case 404: alert("404");
        case 400: alert("400");
             // Take action, referencing xhr.responseText as needed.
    }
}
}); 

Вот тест (работает с Chrome, но не с Firefox 3.6):

http://jsfiddle.net/RTvQQ/

А вотjQuery билет:

http://bugs.jquery.com/ticket/7868

1 Ответ

1 голос
/ 15 сентября 2011

Я вижу в Chrome 13:

И в FF6:

Так что просто используйте error.message ииди оттуда.

...