1

我正在尝试通过 $http 执行 AngularJS 发布请求。我的代码如下所示:

            $http({
                url: "cgi-bin/post_event.pl",
                method: "POST",
                data : jsonToSend,
                headers : {
                    'Content-Type' : "application/json",
                }
            }).success(function(data, status, headers, config) {
                if (status === 200) {
                    console.log(data);
                } else {
                    console.log(data);
                }
            }).error(function(data, status, headers, config) {
                console.log(data);
            });

通过 Firebug 查看时,我看到这部分代码被执行,但没有向服务器触发任何请求。

只有当我再次单击它时,请求才会命中服务器并调用成功方法。

有谁知道这是为什么?或者也许我在这里做错了什么......

这段带有 jQ​​uery 的代码可以正常工作:

                $.ajax({
                url: "cgi-bin/post_event.pl",
                type: "POST",
                contentType : "application/json",
                data : JSON.stringify(jsonToSend),
                success : function (data) {
                    console.log(data);
                    CurrentEvent.eventname = "";
                    CurrentEvent.starttime = "";
                    CurrentEvent.eventLocation.longitude = "";
                    CurrentEvent.eventLocation.latitude = "";
                    $window.location.href = "#/host/my_events";
                },
                error : function (data) {
                    // add error to $rootScope.errors
                }
            });

编辑:啊,对不起,我应该更详细。这在成功的 ajax 请求后称为回调。此代码的其余部分只是构建 jsonToSend。

所以第一次调用这部分时,我可以在 firebug 中看到它构造了 $http 请求,但我看不到它在服务器上触发。

下次我单击一个按钮,该按钮第一次调用这个的 ajax 请求成功方法(但 id 不会通过来自 ajax 的回调调用它,而是直接进入成功方法)

4

0 回答 0