我正在使用用於CSRF保護的express中間件csurf。如果我將它與表單一起使用,將令牌放入隱藏字段中,路由後面的操作就可以工作。現在我想做一個簡單的AJAX調用,但是csurf說它是無效的。csurf AJAX調用 - 無效的CSRF令牌
AJAX調用:
$('.remove').on('click', function() {
var csrf = $(this).attr('data-csrf');
$.ajax({
type: 'DELETE',
url: '/user/' + $(this).attr('data-id'),
data: {
_csrf: csrf
},
success: function (data) {
//.....
}
});
});
並在視圖的一部分:
<td class="uk-table-middle">
<button data-id="{{ _id }}" data-csrf="{{ csrfToken }}" class="uk-button-link uk-text-large remove">
<i class="uk-icon-remove"></i>
</button>
</td>
而且從中間件初始化:
import * as csurf from 'csurf';
// init bodyparse and and and...
app.use(csurf());
這並沒有幫助我。它不工作的原因是,我發送給模板一個數組和令牌。並且在模板中遍歷數組,並且在此範圍內未找到令牌....不知道._。 – R3Tech