簡體   English   中英

AJAX發布請求不適用於Laravel

[英]AJAX Post request not working with Laravel

我可以做這個:

 $.ajax({
        type: "GET",
        async: true,
        url: '/someurl/',
        dataType: 'json',
        success: function (data) {
            console.log(data);
        }
    });

網頁:

Route::get('/someurl','MyController@myfunction');

而且效果很好,但是當我在post上嘗試相同時:

 $.ajax({
        type: "POST",
        async: true,
        url: '/someurl/',
        dataType: 'json',
        success: function (data) {
            console.log(data);
        }
    });

Route::post('/someurl','MyController@myfunction');

我在控制台中收到405方法不允許錯誤消息

使用普通ajax的POST需要CSRF Token才能通過POST Method傳遞

在你的ajax中

 $.ajax({
        type: "POST",
        async: true,
        url: '/someurl/',
        dataType: 'json',  
        data : {"_token":"{{ csrf_token() }}"}  //pass the CSRF_TOKEN()
        success: function (data) {
            console.log(data);
        }
    });

要么

設置頭元標記

<meta name="csrf_token" content="{{ csrf_token() }}" />

設置標頭ajax

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

添加其他路線

Route::post('/someurl','MyController@myfunction');

順便說一句,你不發送任何數據,在后期我們需要正確發送數據。

還要檢查是否在數據中傳遞了csrf令牌,如果不是如上所述,請嘗試手動添加它。

如果您使用的是{{Form...}} ,它將自動添加到表單數據中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM