【问题标题】:How to fix "POST http://localhost:8000/users/create 405 (Method Not Allowed)"如何修复“POST http://localhost:8000/users/create 405(不允许的方法)”
【发布时间】:2019-11-12 15:32:20
【问题描述】:

我正在设置“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');

【问题讨论】:

  • 它是别的东西,但值得一提(也可能是错误原因):没有CSRF令牌,您无法发送POST请求:https://laravel.com/docs/5.8/csrf
  • 你的路由有前缀吗?
  • 根据你的 laravel 版本,你想在你的 ajax 中添加一个方法“PUT”。还要确保 Laravel 在 ajax 请求中使用 CSRF 令牌。

标签: javascript ajax laravel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    您可能还需要这样做,因为 laravel 不允许任何没有自动生成的 csrf 令牌的请求。您可以像这样将 csrf 令牌设置为 html 元数据。

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

    【讨论】:

    • 缺少 CSRF 令牌将引发 TokenMismatchException,而不是 405。OP 可能需要解决此问题,但这不是他们所述问题的原因。
    • @ceejayoz 那是真的我更新了我的答案来解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 2018-12-20
    • 1970-01-01
    • 2017-10-16
    • 2014-05-23
    • 1970-01-01
    • 2014-06-22
    • 2020-05-04
    相关资源
    最近更新 更多