【发布时间】:2016-05-16 17:16:07
【问题描述】:
我在前端使用 AngularJS 编写应用程序,在后端使用 Django 作为 REST 服务。我正在尝试使用 POST 请求发送一些 JSON 数据,但面临 csrf-token 问题(CSRF 令牌丢失或不正确)。据我所知,以前我应该在 Django 上发出 GET 请求以获取此令牌。所以我写了简单的视图:
def get_csrf_token(request):
return HttpResponse(json.dumps({'success': True}))
我添加了 httpProvider 默认值,并在 Angular 应用程序开始时发出 GET 请求:
angular.module('app')
.config(function($httpProvider){
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
})
.run(function($http){
$http.get("http://127.0.0.1:8888/get_csrf_token/")
})
但是这个视图没有设置 CSRF 令牌,我仍然不能做 POST 请求。
【问题讨论】:
标签: angularjs ajax django csrf django-csrf