Laravel在<form>执行ajax put请求时是否应该使用标签感到困惑



我正在使用 axios.put();向我的应用程序后端提出一个简单的put请求这一切都起作用,我有一个按钮,可以像@click="submitForm"

这样的vue。

但是,环顾四周,我看到有些人仍然以类似的形式包裹他们的输入字段:

<form method="POST" @submit.prevent="onSubmit" action="{{ route('someRoute') }}" id="form-submit">
{{ method_field('PUT') }}
{{ csrf_field() }}

即使我不使用上面的表格,我在调用我的ajax put请求时也会得到相同的结果。

laravel Allready将CSFR标头添加到Axios默认为>> resources/Assets/js/bootstrap.js

所以有什么原因我仍然应该以上面的形式包裹我的输入?

谢谢

您的ajax请求是否以表单标签进行输入无关紧要,因为该请求仍然从服务器发送和接收数据。
我会使用表单标签,因为每个人都可以更轻松地阅读标记,并且对于在JavaScript中编写少的代码可能很有用 - 一个示例

<form action="" method="">
  <div class="form-group">
    <label class="control-label">Input</label>
    <input type="text" name="input" />
  </div>
</form>
$(document).ready(function() {
  $('#some-form').on('submit', function() {
    var data = $(this).serialize();
    ... do whatever you want (like ajax call) ...
    return false;
  });
);

您正在使用AJAX请求,在这种情况下,标准"表单提交"将被阻止。将form围绕在其上不是强制性的,尤其是如果您使用button元素,这不是经典的表单元素。

最新更新