Я использую Laravel и пытаюсь отправить форму через XMLHttpRequest
. Это работает, но запрос в контроллере не идентифицирует его как ajax. Форма имеет ввод csrf
.
Я пробовал несколько вещей, сейчас мой код выглядит так:
...
XHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
XHR.setRequestHeader("X-CSRFToken", FD.get("_token"));
...
Но Laravel продолжает отправлять ответ 419 | Page Expired
.
Может быть, я неправильно интерпретирую эту информацию, лаю не на то дерево или что-то здесь упускаю.
Попробуйте добавить заголовок X-запрошено-с к вашему запросу и измените заголовок содержимого на составной или json :
XHR.setRequestHeader("X-Requested-With", 'XMLHttpRequest');
XHR.setRequestHeader("Content-type", 'multipart/form-data'); // or application/json
XHR.setRequestHeader("X-CSRF-Token", FD.get("_token"));
Мне пришлось исключить маршрут из проверки csrf, чтобы заставить его работать, но я не уверен, что это безопасный курс.
я думаю, вы ошиблись в имени параметра csrf, см. мой отредактированный ответ @schrodigerscatcuriosity
Большой! У меня была эта линия раньше, но, перепробовав так много вещей, я удалил ее. Большое тебе спасибо.
Спасибо, применение вашего решения кажется авансом, но теперь в ответ получаю
CSRF token mismatch.