【问题标题】:405 (Method Not Allowed) on post method laravel ajax发布方法laravel ajax上的405(方法不允许)
【发布时间】:2022-01-26 05:35:08
【问题描述】:

我在发送 AJAX 请求时收到 405(不允许的方法)错误。我一直在努力寻找解决方案,但仍然收到同样的错误。

我已经在标题部分添加了这个:

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

这是 AJAX 代码:

function AjaxCall() {
  var token = $('meta[name="csrf-token"]').attr('content');
  
  $.ajax({
    url: 'insertNum',
    type: 'POST',
    dataType: 'json',
    header: {
      'X-CSRF-TOKEN': token
    },
    data: {
      _token: token,
      _method: "PUT",
    },
    success: function() {
      console.log('success');
    }
  });
}

Laravel 代码:

try {
  $lastNum = DB::table('no_antrian')->select('antrian')->first();

  if (!is_null($lastNum)) 
  {    
    $data = DB::table('no_antrian')->update(['antrian' => $lastNum + 1]);
  }

  return response()->json(['success' => 'Sukses']);
}
catch(\Exception $e) {
  return response()->json(['error' => 'failed']);
}

路线:

Route::post('antrian/insertNum', [AntrianController::class, 'getQueueNum']);

【问题讨论】:

  • 该错误表示insertNum 端点未配置为接受 POST 请求。你需要检查你的服务器端逻辑来纠正它
  • 这里是我的服务器端逻辑
  • 请点击问题下方的edit并将其添加到问题中。 cmets 中的代码几乎不可读
  • 也许您需要将type: 'POST' 更改为type: 'PUT'
  • @Dmitry 还是同样的错误

标签: javascript php jquery ajax laravel


【解决方案1】:

请删除数据中的 put 方法

 var token = $('meta[name="csrf-token"]').attr('content');
 let myData = $('form').find('input[name="my_data"]').val();
  
  $.ajax({
    url: 'insertNum',
    type: 'POST',
    dataType: 'json',
    data: {
      _token: token,
       my_data: myData
    },
    success: function() {
      console.log('success');
    }
  });

【讨论】:

  • 仍然收到错误 500(内部服务器错误)
猜你喜欢
  • 2019-07-29
  • 2017-05-31
  • 1970-01-01
  • 2020-11-19
  • 2019-05-10
  • 2017-06-08
  • 2017-11-28
  • 2018-08-22
  • 1970-01-01
相关资源
最近更新 更多