【问题标题】:AngularJS $http.post json request to expressjs in pending statusAngularJS $http.post json 请求 expressjs 处于挂起状态
【发布时间】:2016-12-08 21:29:59
【问题描述】:

在尝试发布到 mongodb 时,我遇到了来自 angularjs 的挂起 $http.post 请求来表达的问题。 我的 app.js:

app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.static(__dirname + '/public'));
app.use('/bower_components', express.static(__dirname + '/bower_components'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.methodOverride());
app.use(app.router);

我的 route.js 用于发布:

self.routeTable.push({

    requestType : 'post',
    requestUrl : '/getAllPrjProjections',
    callbackFunction : function (request, response) {
        console.log(request.body.pr_code);
        console.log(request.body.high_low);
        console.log(request.body);

        var prjProjectionsDao = require('../Server/Dao/prjProjectionsDao.js');

        prjProjectionsDao.create({
            pr_code : request.body.pr_code,
            high_low : request.body.high_low,
            subs_rate : request.body.subs_rate,
            prj_month : request.body.prj_month,
            prj_value : request.body.prj_value,
            last_saved : request.body.last_saved
        }, function(err, todo) {
            console.log(todo);
            if (err) {
                console.log('bbb');
                response.send(err);
            }
        });
    }
});

在控制器中,当用户单击 saveProjections 按钮时,我实现了以下功能:

$scope.saveProjections = function() {
    $scope.prj_to_save = {"pr_code":"PGU","high_low":"HIGH","subs_rate":"Paid Subs","prj_month":"2016-10-01","prj_value":"96000","last_saved":"2016-12-07"};
    var data_to_send = JSON.stringify($scope.prj_to_save);

    prjProjectionsService.saveProjections($scope.prj_to_save).then(function(success) {
       // $scope.formData = {};
        console.log(data, 'Blog created.');
    },function (error) {
        console.log("The request failed: " + error.data);

    });
};

注入的服务器如下:

function saveProjections(prjData){
        return $http.post('/getAllPrjProjections', prjData).then(function (success) {
            console.log('success');
        }, function (error) {
            console.log('error');
        });
    }

问题是请求长时间处于挂起状态(附加打印屏幕),然后失败并出现错误:“XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作”

但是,数据发布在 mongodb 中。 你能帮帮我吗?我将不胜感激。

enter image description here

【问题讨论】:

    标签: angularjs node.js


    【解决方案1】:

    你只是在出错的情况下发送响应,所以在成功的情况下也要发送一些东西

    function(err, todo) {
        console.log(todo);
            if (!err) return response.send(todo); // or send whatever or respnose.end()
            console.log('bbb');
            response.send(err);
        });
    

    【讨论】:

    • 非常感谢!它工作得很好。我不敢相信这是问题所在。我认为我没有在服务中正确发送请求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 2021-09-30
    • 2022-06-30
    • 2012-03-31
    • 2014-02-21
    • 2015-08-30
    • 1970-01-01
    相关资源
    最近更新 更多