如何修复“ POST http:// localhost:8000 / users / create 405(不允许使用方法)”

时间:2019-07-02 03:04:56

标签: javascript ajax laravel

我正在设置“ HTML”,我想使用JavaScript发送数据,但仍然收到以下错误。

  

405(不允许使用方法)

JavaScript

function cb(){

    $.ajax({
        type:"POST",
        url:'http://localhost:8000/users/create',
        data:selchbox,
    });

    var selchbox = [];
    var sb = [];
    var input = document.getElementsByTagName('input');
    for(var i=0; i<input.length;i++){
        if (input[i].type == 'checkbox' && input[i].checked == true) 
            selchbox.push(input[i].value);
    }
    console.log(selchbox);
}

路线

Route::post('/create', 'usersController@create');

2 个答案:

答案 0 :(得分:2)

您要发布到/users/create,但是您的路由定义是针对普通的旧/create

答案 1 :(得分:1)

查看代码,您正在调用名为/ users / create而不是/ create的路由

由于laravel在没有自动生成的csrf令牌的情况下不允许任何请求,因此您可能还需要这样做。您可以将csrf令牌设置为html meta这样的

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

然后像这样在JavaScript中调用它。

 $.ajax({
     url: '/your_route',
     method: "POST",
     headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')                                                                                                                                                                                                
     },
     data,
 }).done(results => {
     //results                                                                                                                                                                                                                           
 })