Почему предварительное заполнение GET превосходит данные POST, и существует ли простой способ изменить это?
В моем приложении mod_perl2 на одной странице я ссылаюсь на ?form_field_name=pre_fill_value
привязанный к URI, если я хочу предварительно заполнить определенное поле формы для пользователя. Тем не менее, сама форма просто <form method=post>
, который отправляет обратно на текущую страницу, запрос GET и все. Я ожидал, что Apache2::Request's param()
подпрограмма будет обслуживать либо только данные POST, либо сначала данные POST. Вместо этого, кажется, что данные GET имеют приоритет, т. Е. Предварительное заполнение учитывается над данными, фиксированными пользователем вручную.
Простое решение - добавить action=
и текущий URI без запроса GET, но мне интересно, почему он был спроектирован таким образом, и если есть хитрый способ обойти это, например, какой-нибудь параметр mod_perl2, который бы давал приоритет POST-данным. Однако легкое исправление может фактически вызвать проблемы, если ожидается, что будут переданы неопределяемые значения GET-запроса. Таким образом, этот обходной путь быстро растет, но почему это вообще так?