服务器总是在 Angularjs ajax 调用 Django 时抛出 403
Server always throws 403 on Angularjs ajax call in Django
服务器总是在我的 Django 应用程序中抛出 403。我尝试将 csrf 与发布到服务器的数据一起使用,但仍然没有成功。我错过了什么?
下面是如何调用 $http
服务函数
<body ng-controller="rdCtrl">
<a ng-click="saveprof()">Save</a>
<script>
var app = angular.module('rdExampleApp', ['ui.rdplot']);
app.controller('rdCtrl', function ($scope, $http) {
$scope.dataset = {
"d0": { "id": 0, "name": "Housing", "value": 18 },
"d1": { "id": 1, "name": "Travel", "value": 31.08 },
"d2": { "id": 2, "name": "Restaurant", "value": 64 },
"d3": { "id": 3, "name": "Bank", "value": 3 },
"d4": { "id": 4, "name": "Movies", "value": 10 }
};
$scope.func = function func() {
var jdata = $scope.dataset;
return jdata;
}
$scope.saveprof = function () {
//show spinner
$('.spinner').show();
$http.post('saveprof', {
data: { 'data': $scope.dataset},
'csrfmiddlewaretoken': $("input[name=csrfmiddlewaretoken]").val()
})
.success(function (data) {
if (data == "null") {
//your code if return data empty
} else {
//your code if return data not empty
$('#message').html(data);
}
//hide spinner
$('.spinner').fadeOut();
})
.error(function (data, status, headers, config) {
console.log('error' + status);
//hide spinner in case of error
$('.spinner').fadeOut();
})
});
</script>
</body>
编辑:
我更正了它,当我点击按钮时 ajax 调用被调用 - 但它 returns 403 错误.. 禁止访问.. 我在我的 django 视图中有视图 saveprof.. 和我也使用了 csrf 令牌。我不确定为什么服务器 returns 403。 (http:/x.x.x.x/saveprof)
我错过了什么?
你必须将 $http 作为参数注入控制器
app.controller('rdCtrl', function ($scope, $http) { .. }
服务器总是在我的 Django 应用程序中抛出 403。我尝试将 csrf 与发布到服务器的数据一起使用,但仍然没有成功。我错过了什么?
下面是如何调用 $http
服务函数
<body ng-controller="rdCtrl">
<a ng-click="saveprof()">Save</a>
<script>
var app = angular.module('rdExampleApp', ['ui.rdplot']);
app.controller('rdCtrl', function ($scope, $http) {
$scope.dataset = {
"d0": { "id": 0, "name": "Housing", "value": 18 },
"d1": { "id": 1, "name": "Travel", "value": 31.08 },
"d2": { "id": 2, "name": "Restaurant", "value": 64 },
"d3": { "id": 3, "name": "Bank", "value": 3 },
"d4": { "id": 4, "name": "Movies", "value": 10 }
};
$scope.func = function func() {
var jdata = $scope.dataset;
return jdata;
}
$scope.saveprof = function () {
//show spinner
$('.spinner').show();
$http.post('saveprof', {
data: { 'data': $scope.dataset},
'csrfmiddlewaretoken': $("input[name=csrfmiddlewaretoken]").val()
})
.success(function (data) {
if (data == "null") {
//your code if return data empty
} else {
//your code if return data not empty
$('#message').html(data);
}
//hide spinner
$('.spinner').fadeOut();
})
.error(function (data, status, headers, config) {
console.log('error' + status);
//hide spinner in case of error
$('.spinner').fadeOut();
})
});
</script>
</body>
编辑:
我更正了它,当我点击按钮时 ajax 调用被调用 - 但它 returns 403 错误.. 禁止访问.. 我在我的 django 视图中有视图 saveprof.. 和我也使用了 csrf 令牌。我不确定为什么服务器 returns 403。 (http:/x.x.x.x/saveprof)
我错过了什么?
你必须将 $http 作为参数注入控制器
app.controller('rdCtrl', function ($scope, $http) { .. }