Установить атрибут метода формы в «ajax» для запроса ajax? - PullRequest
0 голосов
/ 31 октября 2018

Разве очень плохо устанавливать метод формы на ajax при отправке формы с помощью jquery ajax, например, так?

HTML:

<form method="ajax" action="scriptName">
    <input type="submit" name="submit" value="submit">
</form>

JS:

$("form[method=ajax]").submit(function(e){  //  <--
    e.preventDefault();
    /*  ...  */
});

Это работает, но есть много вещей, которые работают, но не обязательно, нужно делать только потому, что, кажется, все в порядке.

Ajax-скрипт выполняет script.exe.php, который будет обрабатывать запрос. Этот файл обнаруживает запросы $_GET['script'] и $_POST['script'], а затем включает соответствующий скрипт из белого списка.

Тот же самый файл, script.exe.php, также включен в начале index.php.

if($_REQUEST['script']){  include 'script.exe.php';  }

?script= (не показан выше) является необязательным в атрибуте действия формы при запросе ajax. Но не для не-AJAX-запроса. Но добавление его к обоим может предотвратить полный сбой, если JavaScript не активирован.

Поскольку, если что-то выходит из строя и по какой-то причине форма отправляется без ajax, я предполагаю, что форма будет отправлена ​​и вызовет перенаправление страницы на то, что находится в атрибуте действия. Что было бы ?script=scriptName.
И так как это действие будет обнаружено $_REQUEST['script']. Форма будет отправлена ​​как ожидалось?

Конечно, я мог бы предоставить класс для обнаружения JavaScript вместо использования атрибута формы. Как и обычные люди.

<form class="ajax" action="?script=scriptName">

$("form.ajax").submit(function(e){

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

...