php - 拉维尔 5.5 : 419 unknown status with AJAX

标签 php ajax forms laravel csrf

我正在请求 POST :

路线:

Route::post('/register','CommonController@postRegister')->name('register');

CSRF 元标记:

<meta name="csrf-token" content="{{ csrf_token() }}">

$("#submitSalonForm").click(function(e) {
  $.ajaxSetup({
      headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
  });
  $.ajax({
      url: "/register",
      type: "post",
      data: new FormData($('form')[1]),
      cache: false,
      contentType: false,
      processData: false,
      success:function(response) {
          return alert('Form 2 submitted');
      }
  });
});

异常(exception)情况:

Exception screenshot

异常有时出现,有时代码运行顺利,我不知道我在这里错过了什么。

最佳答案

将ajax方法从post改成get

<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">

Ajx 调用:

let formData = $('form').serializeArray();
$.ajax({
      url: "/register",
      type: "POST",
      data: {formData, "_token": $('#token').val()},
      cache: false,
      datatype: 'JSON',
      processData: false,
      success: function (response) {
           console.log(response);
         },
         error: function (response) {
           console.log(response);
         }
  });

你的路线是get

Route::get('/register','CommonController@showRegister')->name('register');

Ajax 调用发出 post 请求,laravel sqwaks 出现 http 异常。

编辑: Laravel 419 post 错误通常与 api.php 和 token 授权有关

因此尝试像上面那样在 ajax 正文中包含 token 。

关于php - 拉维尔 5.5 : 419 unknown status with AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48680637/

相关文章:

php - 在 CodeIgniter 中通过 ajax 插入时出现数据库错误

javascript - 我们可以提交一个jsp表单两次吗?

javascript - 如何在 JavaScript 中获取对当前焦点表单字段的引用?

java - 在 PHP 中加密时间戳并在 Java 中解密

php - 表达式引擎 fetch_action_id() 未解析

php - MySQL & php PDO 如何获取 : SELECT EXISTS (SELECT 1 FROM x WHERE y = :value)

php - 构建支持 ajax 的应用程序的最佳方式

javascript - 将数组值从 php 复制到 javascript

ajax - 处理数据库中的 AJAX 并发问题

php - 此路由不支持 GET 方法。支持的方法 : POST. laravel-8