У меня есть эта проблема с Ajax Laravel при размещении в AWS-EC2, что приводит к неизвестному ответу о состоянии 419.
Я искал и пробовал почти все приведенные решения, но проблема все еще существует.
Мой метатег включает в себя CSRF
<meta name="csrf-token" content="{{ csrf_token() }}">
Ниже мой ajax-код laravel
$(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 она отображается как [объект объекта]
А ниже находится ЗапросЗаголовки и данные формы, которые взяты из консоли:
И на моей странице web.php у меня есть следующее:
Route::post('/userlogin', 'HomeController@login');
Тот же код выше работает и на существующем хостинге, и на моем локальном хосте.
Я также убедился, что APP_URL и SESSION_DOMAIN в .env будут одинаковыми.
Я могу дать большеинформация при необходимости.
* Вопрос может звучать как дубликат, но эти вопросыswers не работал для меня при попытке.
Пожалуйста, сообщите.
Спасибо
-Vijay