我使用 ajax 和 laravel 對方法進行 ajax 呼叫,因此我將令牌放在刀片檔案的頭部并與表單一起發送,但我收到錯誤 219 'csrf 令牌不匹配“我找不到我得到的方法錯誤
<head>
<meta name="csrf-token" content="{{ csrf_token() }}" />
</head>
<form id="formId">
<input id="news_letter_mail"
name="email"
class="form-control"
placeholder="Entrez votre E-mail *" />
<div class="call_to_action mb-4">
<a href="#" id="newsletter"> <button >Envoyer un Message</button> </a>
<span><i class='bx bx-right-arrow-alt'></i></span>
</div>
</form>
<script>
$("#newsletter").click(function(event){
event.preventDefault();
var name="moussa";
var email="[email protected]";
var message="ok";
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
console.log(CSRF_TOKEN);
$.ajax({
url: '/newsletter',
type: 'POST',
dataType: 'json',
// headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data:{_token: CSRF_TOKEN,name: name,email: email,message: message}, // the value of input having id vid
success: function(response){ // What to do if we succeed
console.log(response);
},
error: function (error) {
}
});
});
</script>
uj5u.com熱心網友回復:
有很多方法可以在您的 ajax 請求中添加更新的 CSRF 令牌。
在表單中添加以下隱藏欄位
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
在你的js檔案里面
var CSRF_TOKEN = $('#token').val();
它會正常作業。
uj5u.com熱心網友回復:
在布局標題中添加以下元標記
<meta name="csrf-token" content="{{ csrf_token() }}" />
然后在 ajax 呼叫中,包含此標頭
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
希望能解決你的問題
uj5u.com熱心網友回復:
您可以像這樣在發送 AJAX 呼叫時生成 csrf。
let mail = {
_token: "{{ csrf_token() }}",
name: 'Mister. ABC',
email: '[email protected]',
message: 'OK',
}
$.ajax({
url: '/newsletter',
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data:mail, // the value of input having id vid
success: function(response){ // What to do if we succeed
console.log(response);
},
error: function (error) {
}
});
我一直在使用這個最有效的一個。
uj5u.com熱心網友回復:
您的 ajax 沒問題,我認為問題出在它以某種方式使會話無效/過期...您是否正在注銷 ajax 呼叫?但在這種情況下,您的第一個 Ajax 呼叫就可以了。然后它將回傳 419。
uj5u.com熱心網友回復:
感謝任何發布答案的人,問題是 laravel 9 添加中間件 VerifyCsrfToken 希望管理 csrf-tokens 所以我不得不將我的路由添加到中間件
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/521585.html
標籤:阿贾克斯拉拉维尔csrf 令牌
上一篇:發送請求AJAX
