2013-06-12 3 views
1

я заметил, что для моих запросов POST, я должен был использовать:Каков правильный тип кодировки для FormData?

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

или там было бы ошибкой.

Однако при отправке объекта FormData в качестве моих единственных данных у меня нет набора requestHeaders, и все работает нормально.

Мне показалось странным, что требуется заголовок, а другой нет. Просто хотел проверить.

MDN docs состояние,

// xhr.setRequestHeader("Content-type", "multipart/form-data"); 

используется неявно. И.Е. на самом деле не устанавливайте этот заголовок, поскольку он используется по умолчанию для данных формы.

Установка на самом деле вызывает ошибку. Правильно, установка в соответствии с документацией приведет к нарушению вашего кода.

Из документов:

Он использует тот же формат, форма будет использовать, если тип кодирования были установлены на « многослойную/form-данные».

Есть ли официальная документация, описывающая, как использовать эту форму FormData, то есть как правильно ее использовать с ajax.

У меня есть работа с использованием проб и ошибок, но мне нужна прочная ссылка, поэтому я более уверен в своем коде.

+5

Извините, на ваш вопрос? –

+0

Чтобы получить ответ, нужно сначала задать вопрос ... – War10ck

+0

Я думаю, что ответ заключается в том, что единственный способ установить кодировку для «FormData» - это построить его из существующей формы, и в этом случае он подбирает form 'enctype'. Я не могу найти никаких документов для этого. Если вы нашли ответ, отправьте его. – EML

ответ

0

Правильный тип кодирования - это любая кодировка, которую вы используете для данных формы. Целью заголовка является указание хосту сервера интерпретировать отправляемые данные.

Неважно, зависит ли это от того, как серверное приложение обрабатывает данные. Если он считывает исходный ввод, заголовок не имеет значения. Но если он использует обработку формы, предоставляемую библиотекой или средой выполнения, например, заполнение PHP в $_POST, данные формы должны быть закодированы, а заголовок должен соответствовать кодировке.

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