gpt4 book ai didi

python - 使用 Django-Angular 对 View 进行 AJAX 调用

转载 作者:太空狗 更新时间:2023-10-30 00:28:08 24 4
gpt4 key购买 nike

我正在尝试使用 Django-Angular 对 Django 中的 View 进行 AJAX 调用。我正在关注本指南 here .

但是,当我进行 POST 时,我收到消息:CSRF 验证失败。请求中止。看起来像 docs 中描述的 action process_something 没有被调用,因为我不需要 token 。

谁能发现这个问题,下面是我到目前为止所做的尝试...

这里是相关的js Controller 脚本:

   var in_data = {action: 'process_something', somevar: $scope.somevar};
var post_call = CbgenRestangularDjango.all('pin-verification/').post(in_data)

和形式:

<form ng-controller="PinValidationFormCtrl"  name="CompanyValidPinForm" class="bs-callout">
<div class="col-xs-2">
<input class="form-control" name="somevar" ng-model="somevar" type="text">
</div>

<div class="col-xs-2">
<button type="button" class="btn btn-default" ng-click="submitPin()">Verify Pin</button>
</div>
</form>

和 View :

class VerificationView(JSONResponseMixin, View):
# other view methods

@allowed_action
def process_something(self, in_data):
# process input data
out_data = {
'foo': 'bar',
'success': True,
}
return out_data

最佳答案

post() 方法接受配置参数以传递 X_CSRFTOKEN header :

var config = { headers : { 'X_CSRFTOKEN' : $cookies.csrf_token }};
var in_data = {action: 'process_something', somevar: $scope.somevar};
var post_call =
CbgenRestangularDjango.all('pin-verification/').post(in_data, config);

在您的 View 模板中,表单必须包含如下标记:

<form ...>
{% csrf_token %}
...
</form>

注意 $cookies 依赖于 ngCookies(参见 http://docs.angularjs.org/api/ngCookies.$cookies)

关于python - 使用 Django-Angular 对 View 进行 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20828348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com