Как я могу получить csrftoken в проекте Vue.js?
Пробовал использовать js-cookie, но не получается:
import Cookies from 'js-cookie';
if (Cookies.get('csrftoken')!==undefined) { // there will skip, because the Cookies.get('csrftoken') is undefined.
config.headers['x-csrftoken']= Cookies.get('csrftoken'); // 'CSRFToken '
}
но я могу получить другой файл cookie.
РЕДАКТИРОВАТЬ
Cookies.get('csrftoken')
этот код получаем undefined.
Но когда я получаю доступ, есть csrftoken.





Vue.http.headers.common['X-CSRF-TOKEN'] = document.querySelector('#token').getAttribute('value');
получить csrf из файлов cookie:
function getCookie(name)
{
var re = new RegExp(name + "=([^;]+)");
var value = re.exec(document.cookie);
return (value != null) ? unescape(value[1]) : null;
}
#token? Я хочу получить csrftoken. следует поменять его на это?
вы можете получить файлы cookie с помощью document.cookie. надеюсь, это поможет!
Я не уверен, хранит ли js-cookie данные cookie в document.cookie.
Что, если это файл cookie http-only?
Вы пробовали просто распечатать его в DOM на уровне сервера. Получите это оттуда. Laravel - хороший пример:
https://laravel.com/docs/5.6/csrf#csrf-x-xsrf-token
<meta name = "csrf-token" content = "{{ csrf_token() }}">
Конечно, замените {{ csrf_token() }} на язык вашего сервера и токен CSRF.
И в вашем JS:
config.headers['x-csrftoken']= $('meta[name = "csrf-token"]').attr('content')
Если вы используете jQuery.
он говорит, что сохраните csrftoken в теге <meta name = "csrf-token" content = "{{ csrf_token() }}">. но я использую Vue.js в качестве интерфейса. можно я так написать?
так это только в куки, больше нигде? Извините, хотя страница изначально была сгенерирована сервером, и вы хотели получить ее на стороне JS.
Попробуйте console.info (Cookies.get ('csrftoken')) или объект Cookie, чтобы получить правильный ключ.
Ох, Cookies.get('csrftoken') не может получить csrftoken.
Я использую отладчик, там консолью
document.cookie, нетcsrftokenиsessionid, когда я запрашиваю api, они появятся в Cookie в заголовке запроса.