Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 405:在POST请求中找不到方法_Php_Laravel_Http - Fatal编程技术网

Php 405:在POST请求中找不到方法

Php 405:在POST请求中找不到方法,php,laravel,http,Php,Laravel,Http,在尝试对我的laravel应用程序执行POST请求时,我收到405:methodnotfound错误。我正试图建立一个论坛来学习如何使用php和Laravel。 我试图发布来自/forum/category/{category}/post的请求,我执行(几乎)来自/forum的相同请求,它工作得非常完美,因此我认为这与此有关。 这就是我试图发布请求的地方(返回post.blade.php): 请求: var $form = $('form'); $form.submit((e) => {

在尝试对我的laravel应用程序执行POST请求时,我收到405:methodnotfound错误。我正试图建立一个论坛来学习如何使用php和Laravel。 我试图发布来自
/forum/category/{category}/post
的请求,我执行(几乎)来自
/forum
的相同请求,它工作得非常完美,因此我认为这与此有关。 这就是我试图发布请求的地方(返回
post.blade.php
):

请求:

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
    }
我不确定这些信息是否足够。 谢谢


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

尝试向数据添加令牌,并向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);
      },
  });

$.ajax({
类型:“POST”,
url:“/postthread”,
标题:{'X-CSRF-TOKEN':$('meta[name=“CSRF”]”)。attr('content')},
数据:{“测试”:“数据”,“_标记”:$('meta[name=“csrf”]”)。attr('content')},
成功:功能(res){
window.location.reload();
控制台日志(res);
},
错误:函数(xhr、ajaxOptions、thrownError){
log(“AJAX请求期间发生错误,错误代码:”+xhr.status);
},
});

尝试在路由之前以及在ajax路由中添加/正斜杠。您可以粘贴post请求的详细信息,如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);
      },
  });