Есть некая форма, с которой отправляются некие данные, отправляются через функцию $.ajax()
:
f.on('submit', function (e) {
var d = f.serialize();
e.preventDefault();
$.ajax({
url: u,
type: 'POST',
data: d,
dataType: 'json',
beforeSend: b,
error: function (jqXHR) {
//
},
success: function (data, textStatus, jqXHR) {
// внимание сюда, отдельно радует наличие textStatus и jqXHR.statusText
alert(jqXHR.statusText);
}
});
});
На мой взгляд, более верно передавать сообщения о статусе ответов в специально расположенном для этого месте, в jqXHR.statusText
, а data
оставлять либо пустым, либо наполнять реальными данными.
В этом случае у нас не будет путаницы с содержанием ответов, когда там бывает то json
, то text
, который возможно стоит не выводить обычным текстом, а оборачивать в бессмысленный json
, ради унификации кода.
Это может быть важным, когда мы используем стандартные функции по обработке submit
форм, когда все типы получаемых и отправляемых данных желательно привести к единому виду. Соответственно, в контроллере мы (пытаемся) делаем нечто такое:
public function contactUs(ContactUsRequest $request)
{
// что-нибудь
return response(json_encode([... массив / пустота ...]))
->header('Content-Type', 'application/json')
->header('charset', 'utf-8')
->setStatusCode(201, 'Сообщение успешно отправлено.')
;
}
Проблема в том, что при установке кодировки подобным образом это влияет только лишь на выводимые массив / пустота
(я проверял), а вот на statusText
- нет, не влияет, получим привычную абракадабру, которая обычно получается при неверной обработке utf-8
.
Так вот, вопрос: в чем может быть проблема? У меня лично три варианта:
Зачем мне такой код? В целом незачем, просто изучаю тонкости.
Похоже сам нашел ответ на свой вопрос здесь. Причин не делать так, как я описал, то есть не использовать utf-8 в статусе ответа от сервера, две:
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Функция, находящая центр фигуры уже естьНо похоже, она работает не правильно
Добрый деньУ меня есть боковое меню и при клике оно должно быть таким
Есть у меня постраничный слайдер, в каждом слайде отдельная статьяДля каждой статьи свой блок с шерингом