405:POST请求上找不到方法

时间:2019-10-21 01:55:22

标签: php laravel http

我在尝试对laravel应用程序执行POST请求时收到405:未找到方法错误。我正在尝试建立一个论坛来学习如何使用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请求,该请求可以正常工作,我不确定如何使它在此页面上正常工作。

1 个答案:

答案 0 :(得分:0)

尝试在数据中添加令牌,并在URL中添加斜杠。

还将元标记设置为:

<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);
      },
  });