【问题标题】:405: Method Not Found on POST request405:在 POST 请求中未找到方法
【发布时间】:2019-10-21 01:55:22
【问题描述】:

我在我的 laravel 应用程序上尝试执行 POST 请求时收到 405: Method not Found 错误。我正在尝试创建一个论坛来学习如何使用 php 和 Laravel。 我正在尝试发布来自/forum/category/{category}/post 的请求,我执行来自/forum 的(几乎)相同的请求并且它运行良好,所以我认为这与此有关。 这是我试图从(返回post.blade.php)发布请求的地方:

Route::get('forum/category/{category}/post', 'ForumController@showThreadPostForm');

请求:

var $form = $('form');
$form.submit((e) => {
  e.preventDefault();
  $.ajax({
      type: "POST",
      url: 'postthread',
      headers: {'X-CSRF-TOKEN': $('meta[name="csrf"]').attr('content')},
      data: {"test": "data"},
      success: function(res) {
        window.location.reload();
        console.log(res);
      },
      error: function(xhr, ajaxOptions, thrownError) {
        console.log("Error occured during AJAX request, error code: " + xhr.status);
      },
  });
});

路线:

Route::post('postthread', 'ForumController@postThread');

控制器方法:

    public function postThread(Request $request) {
      //empty
    }

我不确定这些信息是否足够。 谢谢。

我在不同的页面 /forum 上使用了相同的 AJAX 请求,它可以工作,但我不知道如何让它在这个页面上工作。

【问题讨论】:

  • 尝试在您的 Route 和您的 ajax 路由之前添加一个 / 正斜杠。
  • 你能粘贴发布请求的详细信息,例如 url、header 和 body 吗?
  • 谢谢,添加正斜杠解决了我的问题。

标签: php laravel http


【解决方案1】:

尝试将令牌添加到您的数据并添加斜杠到您的网址。

元标记也设置为:

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


$.ajax({
      type: "POST",
      url: '/postthread',
      headers: {'X-CSRF-TOKEN': $('meta[name="csrf"]').attr('content')},
      data: {"test": "data",  "_token": $('meta[name="csrf"]').attr('content')},
      success: function(res) {
        window.location.reload();
        console.log(res);
      },
      error: function(xhr, ajaxOptions, thrownError) {
        console.log("Error occured during AJAX request, error code: " + xhr.status);
      },
  });

【讨论】:

    猜你喜欢
    • 2014-06-10
    • 2015-12-26
    • 2018-04-13
    • 2013-03-30
    • 2017-07-01
    • 1970-01-01
    • 2020-07-24
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多