[英]CSRF verification failed. Request aborted. Django 1.10 and Angular 1.6
我正在使用django,djangoRestFramework和Angular1.x開發單頁應用程序。 我已經使用內置的login方法實現了登錄視圖,但是每當我向api發出請求時,它都會返回,且csrf驗證失敗。
我將登錄視圖包裹在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管理頁面時,它不會給我錯誤。 我在這里找不到問題,任何幫助將不勝感激
實際上,這對我來說適用於1.4版本
var myApp = angular.module('myApp', []).config(function($httpProvider)
{
$httpProvider.defaults.xsrfCookieName = 'csrftoken'
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.