0
我正在使用django,djangoRestFramework和Angular1.x處理單個頁面的應用程序。我已經使用內置的登錄方法實現了登錄視圖,但是每當我向api發出請求時,都會返回csrf驗證失敗。CSRF驗證失敗。請求中止。 Django 1.10和Angular 1.6
我包裹着我的登錄觀點與csrf_protect裝飾,如:
class LoginView(views.APIView):
@method_decorator(csrf_protect)
def post(self, request):
user = authenticate(
username=request.data.get('username'),
password=request.data.get('password')
)
if user is None or not user.is_active:
return Response({
'status': 'Unauthorized',
'message': 'Username or password incorrect'
}, status=status.HTTP_401_UNAUTHORIZED)
login(request,user)
return Response(UserSerializer(user).data)
,我跑angular.config這樣的:
angular.run(['$http', function($http) {
$http.defaults.xsrfHeaderName = 'X-CSRFToken';
$http.defaults.xsrfCookieName = 'csrftoken';
}])
當我拿出csrf_protect裝飾,但它仍然給了我一個錯誤說 '請求對象沒有屬性會話'。
另外,當我在本地主機上工作,並且在我嘗試登錄之前訪問django管理頁面時,它不會給我一個錯誤。我不能在這裏弄清楚這個問題,任何幫助,將不勝感激