簡體   English   中英

Laravel 5.6 Ajax發布數據

[英]Laravel 5.6 Ajax post data

我試圖將數據發送到沒有表單的Ajax發布頁面,但是它不起作用。

我想我的問題來自crs,但我無法找到使它起作用的方法。

在頁面的標題中,有;

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

然后,對於這個示例,我有一個帶有重新排序插件的數據表。 當重新排序事件被觸發時,我使用Ajax調用(但是我的問題發生了,無論我如何發送除表單以外的Ajax)。

table{{$batiment->id}}.on( 'row-reorder', function ( e, diff, edit )      {
   $.ajaxSetup({
headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

    $.ajax({
        url: 'etages/form',
        type: 'POST',
        data: {item_id : 1},
        dataType: 'json',

        success: function( data ) {
            console.log(data);

        }       
    })
});

我的形成路線:

Route::post('/etages/form', ['as' => 'etages.form', 'uses' => 'Copro\EtageController@form']);

我的控制器中的函數表單(此函數與表單發布數據配合使用):

public function form(Request $request)
{

    $request->flash();

    return response()->json([
        'error' => 'false'
    ]);
}

但是每次我嘗試發布無格式的數據時,無論我使用什么觸發器(數據表,onclick ...),我都會收到以下消息:

Symfony \\組件\\ HttpKernel \\異常\\ MethodNotAllowedHttpException沒有消息

在chrome控制台上,我可以看到我的發布數據,但是在laravel的錯誤頁面上,發布數據為空。 我不知道這是否正常。

有人可以幫助我解決這個問題嗎? 我不能總是使用get發送此類數據。

謝謝您幫忙。

方法1:

var csrf = $('meta[name="csrf-token"]').attr('content');
$.ajax({
    url: '/etages/form',
    type: 'POST',
    data: {item_id : 1, '_token': csrf},
    dataType: 'json',

    success: function( data ) {
        console.log(data);

    }       
})

方法2:

$.ajaxSetup({
headers: {
    'X-XSRF-TOKEN': decodeURIComponent(/XSRF-Token=([^;]*)/ig.exec(document.cookie)[1])
}
});

$.ajax({
    url: '/etages/form',
    type: 'POST',
    data: {item_id : 1},
    dataType: 'json',

    success: function( data ) {
        console.log(data);

    }       
})

您的鏈接“ etages / form”,是否已在api路由中進行了定義。 如果您已在api路由中定義,則應類似於此“ / api / etages / form”。

暫無
暫無

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

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