【问题标题】:The POST method is not supported for this route. Supported methods: GET, HEAD. Laravel 8此路由不支持 POST 方法。支持的方法:GET、HEAD。拉拉维尔 8
【发布时间】:2021-05-07 11:26:20
【问题描述】:

我正在尝试通过 ajax 提交图像但收到错误:The POST method is not supported for this route. Supported methods: GET, HEAD.

Javascript:

$("form[name='submitProfileImage']").on("submit", function(ev) {
  ev.preventDefault(); // Prevent browser default submit.

  var formData = new FormData(this);
    
  $.ajax({
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    url: "/members/store",
    type: "POST",
    data: formData,
    success: function (msg) {
      alert(msg)
    },
    cache: false,
    contentType: false,
    processData: false
  });

表格:

<form method="POST" name="submitProfileImage">
    <input type="file" hidden id="profileImage" onchange="submit()">
    <a class="btn btn-primary mb-5" href="#" id="selectProfileImage">Add profile image</a>
</form>

路线:

Route::post('members/store', 'MembersController@store')->name('members.store');

路由表sn-p:

 POST | members/store | members.store | App\Http\Controllers\MembersController@store

无论我从表单中删除方法还是从 ajax 中删除类型,仍然有相同的错误。清除了路由表,但这没有任何区别。我在这里错过了什么?

【问题讨论】:

  • 你能告诉我们你从哪里获得 CSRF 令牌吗?
  • 从这个标题中:
  • 你能告诉我们你的其他路线吗,那里可能有冲突
  • 尝试网址:"= route('members.store'); ?>"

标签: javascript php ajax laravel


【解决方案1】:

对于图片,我认为您需要将 Content-Type : multipart/form-data 添加到您的标题中。这样做,让我们看看它会有什么不同

【讨论】:

  • 可悲的是没有区别
  • 你在邮递员上试过了吗
  • 你也应该尝试清除路由缓存php artisan route:clear
  • 请在您的答案中添加一些解释,以便其他人可以从中学习 - 您所说的“图像”是什么意思?
猜你喜欢
  • 2019-08-06
  • 1970-01-01
  • 2021-09-14
  • 2021-01-19
  • 1970-01-01
  • 2021-05-08
  • 2019-08-28
  • 2019-08-31
相关资源
最近更新 更多