[英]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.