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