私はDjango Rest Frameworkで作成したREST APIにVue.jsを使っていくつかのPOSTメソッドを実行しようとしています。問題は、投稿時にCSRF Failed: CSRF token missing or incorrect.
エラーが発生しています。しかし、私はcsrfのクッキーを見ることができ、それはヘッダーに追加されています。Django Rest Framework、CSRF、Vue.js
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
'rest_framework.permissions.DjangoModelPermissions'
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication'
)
}
はここに私のVue.jsの設定です:ここで
は私の設定ですvar csrftoken = Cookies.get('csrftoken');
Vue.http.headers.common['HTTP_X_CSRFTOKEN'] = csrftoken;
そして、ここに送られたヘッダの関連部分です:あなたのよう
Cookie:djdt=hide; tabstyle=raw-tab; sessionid=1gl533mrneudxw3l9l2vg0ja1yowwmeo; csrftoken=dN85bhztB1oVRov87BsUrWTM29Ff9sjn
Host:127.0.0.1:8000
HTTP_X_CSRFTOKEN:dN85bhztB1oVRov87BsUrWTM29Ff9sjn
Origin:http://127.0.0.1:8000
Referer:http://127.0.0.1:8000/agencies/6/add-profiles/
Cookie.csrfとHTTP_X_CSRFTOKENヘッダーが一致することがわかります
私は本当に困っています。助言がありますか?
'CSRF_HEADER_NAME'設定は何を使用していますか? djangoは従来どおり、 'HTTP_X_CSRFTOKEN'は' X-CSRFTOKEN'を送信する必要があることを知っています。https://docs.djangoproject.com/en/1.9/ref/settings/#csrf-header- – Nevertheless
あなたのアプリは同じドメインにありますか?またはCORSを使用していますか? –
Yerko Palmaが正しいです、それは同じ発信元リクエストポリシーまたは 'CSRF_COOKIE_HTTPONLY'設定の問題かもしれません。 – Nevertheless