Javascript $http.post未到达服务器
我在启动$http.post时遇到问题:Javascript $http.post未到达服务器,javascript,ajax,angularjs,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,
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>
编辑页面:
姓名:
内容:
{{Content}}
地点:
不幸的是,$http.post没有启动。我试着将post调用包装在$scope.$apply周围,但也不起作用
我怎样才能解决这个问题
谢谢
编辑:修复了JavaScript变量名区分大小写的问题。您已声明了
postOBject
,但正在传递postOBject
ReferenceError:未定义postObject
如果我纠正了输入错误,它对我来说就像预期的那样工作
顺便说一句,我建议使用带有静态分析的IDE——它会立即通知您未定义的变量。此外,Firebug或Chrome DevTools javascript控制台对于javascript开发几乎是绝对必要的。您在哪里调用
saveEditPage
函数?请您也将模板的这一部分添加到问题中好吗?saveEditPage由表单提交时的模板调用。该函数调用正确,但post本身未触发。我添加了模板代码。哇,真不敢相信这么小的打字错误会造成这么大的麻烦。但现在错误被解雇了,而不是成功。这可能是一个帖子标题问题吗?嗯,这可能是任何问题,例如,你的url可能是错误的。只需打开开发控制台,在Chrome/FF中查看HTTP结果-Crtl+Shift+I,然后打开Network选项卡。