изменить & mdash; обязательно прочитайте проницательный комментарий @ pepsi - все это, вероятно, фальшивка :-)
Это потому, что протокол HTTP предусматривает, что CR-LF является ограничителем строки для всего, кроме «тела объекта», параметры которого не являются частью.
Поэтому более интересный вопрос заключается в том, почему Firefox (и Chrome? Не уверен) удаляет , возвращая символы из <textarea>
значений элемента при ответе на запросы о свойстве "value" свойства элементы DOM, но они возвращают CR при публикации. Это означает, что код, который хочет делать как поведение «счетчика символов» комментария Stackoverflow, должен учитывать тот факт, что количество символов, которые будут опубликованы, не обязательно совпадает с количеством символов в значении свойства «значение» .
Наконец, также интересно отметить, что jQuery нормализует поведение браузера и гарантирует, что ответ «.val ()» для <textarea>
элементов всегда не имеет символов CR, что делает его равномерным неправильно для всех браузеров: -)
изменить & mdash; фактически при изучении RFC может случиться так, что в запросе POST секцию параметров следует считать "телом сущности". Если это так, браузеры конвертируют в CR-LF, вероятно, просто чтобы быть консервативным. Предполагается, что серверы должны быть действительно гибкими с соглашениями об окончании линии, но, может быть, 10 лет назад это не так, и браузеры просто сделали простую вещь и отправили нормализованную пару CR-LF, чтобы быть в безопасности.
Также обратите внимание, что IE всегда делал это, вроде как, но разница в том, что значение <textarea>
в IE всегда сообщается с неповрежденными символами CR.