【问题标题】:I cannot send data from Angular to Django using $http我无法使用 $http 将数据从 Angular 发送到 Django
【发布时间】:2013-09-09 19:07:53
【问题描述】:

我正在尝试设置一个向 db 添加新对象的表单,但首先我想检查一些内容并设置服务器端以获取新记录,但我被冻结了 :(

这是我的代码,请试一试:

ctrl

subtitlesApp.controller('AddSubtitleController',
    function($scope, addSubtitle) {
        $scope.saveSubtitle = function(subtitle, addSubtitleForm) {
            if (addSubtitleForm.$valid) {
                var x = addSubtitle.getTitle(subtitle.imdb_id);
                }
        };
    });

服务

subtitlesApp.factory('addSubtitle', ['$http', function ($http) {
    return {
        getTitle: function(imdb_id) {
            $http({
                method: 'POST',
                url:'add_subtitle/',
                data: imdb_id,
            })
            .success(function(data, status, headers, config) {
                console.log(data);
            }).error(function(data, status, headers, config) {
                console.log(imdb_id+'eror')
            });
        }
    }
}]);

这是我打印 request.POST 时得到的结果:

<QueryDict: {}>

【问题讨论】:

    标签: ajax django angularjs


    【解决方案1】:

    你应该让服务返回一个promise

    subtitlesApp.factory('addSubtitle', ['$http', function ($http) {
        return {
            getTitle: function(imdb_id) {
                var promise = $http({
                    method: 'POST',
                    url:'add_subtitle/',
                    data: imdb_id,
                })
                .success(function(data, status, headers, config) {
                    console.log(data);
                }).error(function(data, status, headers, config) {
                    console.log(imdb_id+'eror')
                });
    
                return promise;
            }
        }
    }]);
    

    何时使用服务

    var x;
    if (addSubtitleForm.$valid) {
        addSubtitle.getTitle(subtitle.imdb_id).then(function(data){
            x = data;
        });
    }
    

    【讨论】:

    • 嘿!但是服务没有返回任何东西,因为我要发送的参数没有发送,即'imdb_id',它是一个字符串,所以它只返回一个错误。我认为错误是我没有正确设置数据属性。
    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 2018-12-31
    • 2014-09-06
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多