В соответствии с документацией Flask-WTF
, как передать токен CSRF при использовании AJAX
<script type="text/javascript">
var csrf_token = "{{ csrf_token() }}";
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrf_token);
}
}
});
</script>
Есть ли способ реализовать защиту CSRF при использовании API выборки?
Также попытался добавить credentials: 'include',
* Редактировать Я получаю 2 ошибки:
the CSRF token is missing
The CSRF session token is missing
Вот мой код
let csrf_token = "{{ csrf_token() }}";
let payload = {
// some data
"csrf_token": csrf_token
}
let header = { 'content-type': 'application/json','accept': 'application/json',"X-CSRFToken": csrf_token}
paypal.Buttons({
createOrder: function(data, actions) {
return fetch(prefix.concat("/payment/paypalCreate"), {
method: "POST",
headers: header ,
body:JSON.stringify(payload),
credentials: 'include',
})
.then(function(res) {
return res.json();
}).then(function(data) {
console.log(typeof(data))
return data.id
})
.catch(err => {
console.log(err);
});
}