【发布时间】:2020-08-19 21:29:24
【问题描述】:
我正在使用 CakePHP 3.6。我有一个函数将使用 AJAX 调用返回一些数据。将从我网站的任何页面调用此函数。就像一个按钮将在那里,单击该按钮时,模态将带有一些数据。这些数据将来自 AJAX 调用。所以现在我面临的问题是 Csrf 令牌。如果我从可用表单的页面单击,则此 AJAX 调用工作完美,因为该表单有可用的 Csrf 令牌。但是当我尝试从没有可用表单的页面单击时,AJAX 会给出 Csrf 错误。因为该页面没有添加 Csrf。
这就是我的按钮单击和 Ajax 调用函数的样子
$("#td-apt").on('click', function() {
getModalData();
$("#data-modal").modal('toggle');
});
function getModalData () {
$.ajax({
type: "POST",
url: "/function/Data",
headers: {
'X-CSRF-Token': $('input[name="_csrfToken"]').val()
},
dataType: "json",
success: function(data) {
console.log('success')
},
error: function() {
alert('Error');
}
});
}
因此,在调用此 AJAX url 之前,每次都可以生成 Csrf 令牌。或任何其他方式来做到这一点。谢谢
【问题讨论】: