gpt4 book ai didi

javascript - $http 调用挂起

转载 作者:行者123 更新时间:2023-11-28 08:06:29 26 4
gpt4 key购买 nike

我正在尝试创建一个页面来显示所有论坛帖子...一切正常,但我注意到在创建帖子后(当它重定向以显示所有帖子时)- 在 firebug 中,帖子调用挂起很长时间。但是,数据会被发送出去,即使看起来帖子调用仍在等待中......因为它显示在包含所有帖子的页面上,之后会立即加载。我现在就是这样做的。

帖子 Controller (post.js):

'use strict';

angular.module('appApp')
.controller('PostCtrl', function ($location, $scope, $http) {
$scope.errors = {};
$scope.post;

$scope.postit = function(form) {
$scope.submitted = true;

if(form.$valid) {
console.log($scope.post.posttitle + " this is $scope.post");
$http.post('/api/post', $scope.post).success(function() {console.log("no errors whoohoo")});
$location.path('/forum');
}
};
});

如您所见,现在我正在调用后行之后执行重定向 ($location.path)。重定向工作正常,就像这样......但是 - 如果我尝试将重定向放入 success 函数中:

$http.post('/api/post', $scope.post).success(function() {$location.path('/forum'); console.log("no errors whoohoo")});

重定向永远不会发生,它只是卡在调用后。有谁知道发生了什么事吗?我认为帖子调用应该只需要几毫秒即可完成(它只是存储帖子标题和内容)。

无论我采用哪种方式,post 调用都会挂起......这只是第二种方式不会重定向页面。

更新

正如评论中所建议的,我的服务器端代码有问题 - 我可能已经隔离了问题。

这是当我想列出页面上的所有帖子(api.js)时调用的函数:

exports.posts = function(req, res) {
return Post.find(function (err, posts) {
if (!err) {
console.log(posts + " server side posts function route");
return res.json(posts);
} else {
return res.send(err);
}
});
};

console.log 消息从未出现,所以这一定是它挂起的地方......有什么想法吗?

调用此函数的代码区域如下所示:

app.route('/api/post')
.get(api.posts);

这是我的快速路线之一。

最佳答案

事实证明,使用 $location.path('/xxx') 还不够,我还需要在 Express 端使用 res.redirect重定向实际工作。 (必须同时使用两者)。

关于javascript - $http 调用挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24742637/

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