【问题标题】:POST 405 (Method not allowed) when trying to post AJAX request - Laravel 5.5尝试发布 AJAX 请求时 POST 405(方法不允许) - Laravel 5.5
【发布时间】:2018-08-22 19:32:52
【问题描述】:

我正在尝试发出一个简单的 AJAX 请求来填充 Laravel 中的菜单,但是我在让它正常工作方面遇到了很多麻烦。

我不确定问题是什么,经过几个小时的搜索,我找不到任何可以提供帮助的东西。

这是我的 AJAX 请求:

$.ajax({
        type : 'post',
        url  : url,
        data : formData,
        success:function(data){
            console.log(data);
        } 
    });

我的 AJAX 回调路径:

Route::post('/newCustomer','CustomerController@newCustomer');

发送 AJAX 请求时,它在错误参数中返回失败消息,并在控制台中告诉我:

POST http://localhost:8000/ 405 (Method Not Allowed)

它给出了完整的 URL:POST http://localhost:8000/ 405 (Method Not Allowed),但这也不能解决问题。

ERROR IMAGE

【问题讨论】:

  • 你应该发帖到/newCustomer,而不是/
  • 你在做跨域请求吗?如果是这样,您需要配置后端以支持跨源请求,以及根据浏览器启用在发送 POST 请求之前发送的其他动词。如果初始请求失败,通常会返回 405 Method not allowed 响应。如果我没记错的话,您需要启用 OPTIONS 动词。希望这会有所帮助。
  • 似乎是 Web 服务器配置错误。其他 POST 请求是否有效?像内置的,登录等。

标签: javascript php jquery ajax laravel-5.5


【解决方案1】:

你在表单提交处理程序中写过这样的东西吗?

$('#some_name').on('action', function (e) {

    e.preventDefault(); //<---if yes then comment this line of code.

}

N.B:我遇到了同样的问题。只是注释掉这一行就解决了这个问题。 快乐编码:)

【讨论】:

    【解决方案2】:

    你需要传递 csrf_token。在&lt;head&gt;中添加这一行

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

    然后在ajax中

    $.ajax({
        type : 'post',
        url  : url,
        data : formData,
        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, //Add this <-----
        success:function(data){
            console.log(data);
        } 
    });
    

    【讨论】:

    • 我昨天遇到了同样的问题。在 中添加 标记,然后在我的 ajax 请求中添加“headers”解决了这个问题。
    • 这个人发帖到/,而不是/newCustomer,他的问题与CSRF令牌无关,它与将数据发送到错误的URL有关。
    • @rahulsingh 你能发布你的变量 url 中的内容吗?
    • 请通过此链接找到我的项目:[link] filehost.net/9e68b6ac0873d77e [link]
    • 如果你给我们网址会更好。控制台日志(网址)。然后从你的控制台给我们输出
    猜你喜欢
    • 2019-07-29
    • 2019-03-25
    • 1970-01-01
    • 2020-03-19
    • 2017-06-08
    • 2018-08-19
    • 1970-01-01
    • 2016-02-21
    • 2017-05-31
    相关资源
    最近更新 更多