Laravel 5.5 : 419 未知状态 AJAX
Laravel 5.5 : 419 unknown status with AJAX
我正在请求 POST
:
路线:
Route::post('/register','CommonController@postRegister')->name('register');
CSRF 元标记:
<meta name="csrf-token" content="{{ csrf_token() }}">
$("#submitSalonForm").click(function(e) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "/register",
type: "post",
data: new FormData($('form')[1]),
cache: false,
contentType: false,
processData: false,
success:function(response) {
return alert('Form 2 submitted');
}
});
});
例外情况:
有时候会出现异常,有时候代码运行很流畅,我不知道我在这里错过了什么。
将 ajax 方法从 post 更改为
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
Ajx 调用:
let formData = $('form').serializeArray();
$.ajax({
url: "/register",
type: "POST",
data: {formData, "_token": $('#token').val()},
cache: false,
datatype: 'JSON',
processData: false,
success: function (response) {
console.log(response);
},
error: function (response) {
console.log(response);
}
});
你的路线是
Route::get('/register','CommonController@showRegister')->name('register');
Ajax 调用正在发出 post 请求,laravel sqwaks 出现 http 异常。
编辑:
Laravel 419 post 错误通常与 api.php 和令牌授权有关
所以尝试像上面那样在 ajax 正文中包含令牌。
无需单独设置ajax。 Laravel 为应用程序管理的每个活动用户会话自动生成一个 CSRF "token"。用这个获取令牌:
var token = "{{ csrf_token() }}";
传递令牌 data
var token = "{{ csrf_token() }}";
var formData = new FormData($('form')[1])
$.ajax({
url : '/register',
data : {_token:token,formData:formData},
type: 'post',
...
})
嗯,我知道我来晚了,但我确实遇到了你遇到的问题。
我 100% 确定令牌已随请求一起发送,但问题仍然存在。
所以,经过多次搜索,我终于按照以下步骤修复了它:
php artisan config:clear
php artisan view:clear
php artisan route:clear
php artisan cache:clear
php artisan clear-compiled
除了将 crsf-token 值放入 header 元标记之外,您还需要在 AJAX 请求中传递它,例如:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
我正在请求 POST
:
路线:
Route::post('/register','CommonController@postRegister')->name('register');
CSRF 元标记:
<meta name="csrf-token" content="{{ csrf_token() }}">
$("#submitSalonForm").click(function(e) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "/register",
type: "post",
data: new FormData($('form')[1]),
cache: false,
contentType: false,
processData: false,
success:function(response) {
return alert('Form 2 submitted');
}
});
});
例外情况:
有时候会出现异常,有时候代码运行很流畅,我不知道我在这里错过了什么。
将 ajax 方法从 post 更改为
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
Ajx 调用:
let formData = $('form').serializeArray();
$.ajax({
url: "/register",
type: "POST",
data: {formData, "_token": $('#token').val()},
cache: false,
datatype: 'JSON',
processData: false,
success: function (response) {
console.log(response);
},
error: function (response) {
console.log(response);
}
});
你的路线是
Route::get('/register','CommonController@showRegister')->name('register');
Ajax 调用正在发出 post 请求,laravel sqwaks 出现 http 异常。
编辑: Laravel 419 post 错误通常与 api.php 和令牌授权有关
所以尝试像上面那样在 ajax 正文中包含令牌。
无需单独设置ajax。 Laravel 为应用程序管理的每个活动用户会话自动生成一个 CSRF "token"。用这个获取令牌:
var token = "{{ csrf_token() }}";
传递令牌 data
var token = "{{ csrf_token() }}";
var formData = new FormData($('form')[1])
$.ajax({
url : '/register',
data : {_token:token,formData:formData},
type: 'post',
...
})
嗯,我知道我来晚了,但我确实遇到了你遇到的问题。
我 100% 确定令牌已随请求一起发送,但问题仍然存在。
所以,经过多次搜索,我终于按照以下步骤修复了它:
php artisan config:clear
php artisan view:clear
php artisan route:clear
php artisan cache:clear
php artisan clear-compiled
除了将 crsf-token 值放入 header 元标记之外,您还需要在 AJAX 请求中传递它,例如:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});