当托管在AWS-EC2中时,Laravel ajax存在此问题,导致419个未知状态响应。
我已经搜索并尝试了几乎所有给出的解决方案,但是问题仍然存在。
我的元标记包括CSRF
<meta name="csrf-token" content="{{ csrf_token() }}">
下面是我的laravel ajax代码
$(document).ready(function () {
var BASE_URL = "{{url('/')}}";
$("form[name='logForm']").validate({
rules: {
log_email: {
required: true,
email: true
},
log_password: {
required: true,
minlength: 5
},
},
messages: {
log_email: "Please enter a valid email address",
log_password: "Enter a valid password",
log_email: "Please enter a valid email address"
},
submitHandler: function(form) {
logForm();
}
});
function logForm() {
log_email=$("#log_email").val();
log_password=$("#log_password").val();
error=0;
if (log_email == '' && log_password=='') {
error = 1;
}
if (error == 0) {
$.ajaxSetup({
// beforeSend: function(xhr, type) {
// if (!type.crossDomain) {
// xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
// }
// },
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
//url : BASE_URL + '/userlogin',
url: '/userlogin',
data: {
'_token': '{!! csrf_token() !!}',
'email': $("#log_email").val(),
'password': $("#log_password").val()
},
dataType: 'json',
type: 'POST',
cache: false,
success: function (response) {
if (response.type =='success') {
@if(Request::is('page-not-found'))
window.location=BASE_URL;
@else
window.location.reload();
@endif
} else if(response.type=='suspended'){
$('#log_suspended').show();
$('#log_spiner').hide();
}
else {
$('#log_err').show();
$('#log_spiner').hide();
//alert(response.message);
}
},
});
}
}
});
我已经在jquery中注释了几行,这些是我尝试过的解决方案。
尝试添加,
contentType: false,
processData: false,
同样,如果我添加processData,则在控制台Form-Data中将其显示为[object Object]
下面是从控制台获取的请求标头和表单数据:
在我的web.php页面中,我有以下内容:
Route::post('/userlogin', 'HomeController@login');
上面相同的代码在现有主机和我的本地主机中也可以工作。
我还确保.env中的APP_URL和SESSION_DOMAIN相同。
如有需要,我可以提供更多信息。
*这个问题听起来像是重复的,但尝试时这些答案对我不起作用。
请告知。
谢谢
-维杰
答案 0 :(得分:0)
我找到了解决方案。
许多问题都需要检查:
我还确保.env中的APP_URL和SESSION_DOMAIN为 一样。
但是我在一个堆栈问题中发现要从.env中删除SESSION_DOMAIN,然后确保
'domain' => env('SESSION_DOMAIN', null),
行出现在config / session.php
中这对我有用。
可能会杀死像我一样面临类似问题的人。