[英]Laravel CSRF Token Mismatch on some pages
我有這個 javascript 文件,它每 8 秒運行一次,調用路由/ajax?act=notifications_show
。 我注意到在某些頁面上,javascript 文件可以正常工作,但是在訪問某些頁面時,它會顯示錯誤,例如CSRF token mismatch
。 我不確定為什么會發生這種情況,但頁面的布局與我擴展的布局相同。
請注意,我已經為每個布局添加了<meta name="_token" content="{{ csrf_token() }}"/>
通知.js
function get_notifications(){
$.ajax({
method: "POST",
url: window.location.origin + "/ajax?act=notifications_show",
}).done(function( d ) {
console.log("d: "+ d);
// n = jQuery.parseJSON(d); //if error abort all commands below
// console.log("n: "+ n);
// //console.log(n.qqq);
// $('#header_notification_bar').html(n.notification);
// //alert(n.qqq);
// if(n.has_noti == 1){
// toastr.info('<div><a href="#" onclick="toggle_comments('+n.id+')">'+n.noti_msg+' from '+n.noti_from+'</a></div>');
// }
});
}
function toggle_comments(id){
$('body').toggleClass('page-quick-sidebar-open');
$('#msg_contents').html('');
get_chat_area(id);
get_comments(id);
}
window.onload = function(e){
$('.dropdown-quick-sidebar-toggler').click(function (e) {
$('body').toggleClass('page-quick-sidebar-open');
$('#msg_contents').html('');
get_chat_area(this.id);
get_comments(this.id);
});
setInterval(get_notifications, 8000);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
}
錯誤顯示message: "CSRF token mismatch." trace: [{,…}, {file: "C:\\xampp7\\htdocs\\vms\\app\\Exceptions\\Handler.php", line: 53, function: "render",…},…]
message: "CSRF token mismatch." trace: [{,…}, {file: "C:\\xampp7\\htdocs\\vms\\app\\Exceptions\\Handler.php", line: 53, function: "render",…},…]
我的問題是:為什么錯誤顯示在某些頁面上,但在其他頁面上有效? 當令牌不匹配時如何解決此問題?
我發現了問題,我錯了並非所有頁面都有 csrf 的元標記。 我假設我的開發伙伴遵循了我的實現,但似乎他沒有使用我的擴展,這就是為什么它在某些頁面上顯示錯誤的原因。
<meta name="_token" content="{{ csrf_token() }}"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.