私はCSRF保護のためにエクスプレスミドルウェア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>
やミドルウェアからのinit:
import * as csurf from 'csurf';
// init bodyparse and and and...
app.use(csurf());
これは私を助けませんでした。それがうまくいかなかった理由は、私は配列とトークンをテンプレートに送ります。そして、テンプレートでは、配列全体を繰り返します。このスコープでは、トークンは見つかりませんでした....それを知りませんでした。 – R3Tech