Angular $ http.post没有到达服务器

时间:2013-12-08 13:13:41

标签: javascript ajax angularjs

我在解决$ http.post问题时遇到了问题:

app.controller('editPageController', function($scope, $routeParams, $http) {

    $scope.page = $routeParams.pageid;

    // get page data from server
    $http.get('/pages/' + $scope.page).
        success(function(data, status, headers, config) {
            $scope.Name = data[0].name;
            $scope.Content = data[0].content;
            $scope.Location = data[0].location;
        }).
        error(function(data, status, headers, config) {
            alert("Can't get the page from the server");
        });

    // save page data on the server
    $scope.saveEditPage = function() {

        var postOBject = {Name: $scope.Name, Content: $scope.Content, Location: $scope.Location};
        $http.post('/pages/' + $scope.page + '/edit', postObject).
            success(function(data, status, headers, config) {
                alert("success");
            }).
            error(function(data, status, headers, config) {
                alert("Can't edit the page on the server");
            });
    };

});

模板代码:

<script type="text/ng-template" id="editPage.html">
    <h1>Edit page:</h1>
    <form ng-submit="saveEditPage()">
    <p>Name:</p>
    <input type="text" ng-model="Name" value="{{Name}}">
    <p>Content:</p>
    <textarea ng-model="Content">{{Content}}</textarea>
    <p>Location:</p>
    <input type="text" ng-model="Location" value="{{Location}}">
    <p><input type="submit" value="Save"> <input type="button" value="Cancel" ng-click="$back()"></p>
</form>

不幸的是$ http.post不会触发。我尝试在$ scope附近包装post调用。$ apply,它也不起作用。

我该如何解决这个问题?

由于

编辑:修复

1 个答案:

答案 0 :(得分:1)

JavaScript变量名称区分大小写。您已声明postOBject,但您正在传递postObject

  

ReferenceError:未定义postObject

如果我纠正错字,它就像我预期的那样工作。

BTW我建议使用IDE进行静态分析 - 它会立即通知您未定义的变量。此外,Firebug或Chrome DevTools javascript控制台几乎是javascript开发所必需的。