2016-04-17 7 views
1

私はdjangorestfullを使用しているWebプロジェクトのサーバー側です。私たちのUIチームは、ポート3000のGulpとUIを実行し、Djangoサーバはポート8000​​を実行します。ログインのために、ajaxのために/api-auth/login urlを使用します。 /api-auth/loginのオプションメソッドの回答にはcsrftokenが含まれていますが、フォームとポストメソッド(ユーザ名とパスワードを含む)はCSRFというエラーに直面しています。この問題の原因を確認するにはどうすればよいですか?サーバー側にありますか、トークンはポストメソッドで送信されませんか?/api-auth/loginのajaxing中にdjangorestfullでCSRFエラーが発生しました

は、ここに私のsetting.pyです:

REQUIRED_APPS = [ 
    'django_admin_bootstrapped', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django_extensions', 
    'rest_framework', 
] 

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
) 

REST_FRAMEWORK = { 
    # Use Django's standard `django.contrib.auth` permissions, 
    # or allow read-only access for unauthenticated users. 
    'DEFAULT_PERMISSION_CLASSES': [ 
     'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly', 
     'rest_framework.authentication.SessionAuthentication', 
     'rest_framework.authentication.TokenAuthentication', 
    ] 
} 

urls.py

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'', include('User.urls', namespace='User')), 
    url(r'^schedule/', include('Schedule.urls', namespace='Schedule')), 
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 
] 

答えて

1

問題はUIチームから来ているようです。 POST要求にCSRFトークンが含まれていない可能性が高いです。親切にそれを確認してください。 Djangoのトークンを追加する方法に関するいくつかのドキュメントがあります。 https://docs.djangoproject.com/en/1.9/ref/csrf/#ajax

関連する問題