AngularJS: $http.post 给出 404 错误,但是 $http.get 请求同一个文件是可以的
AngularJS: $http.post gives 404 error, but $http.get request to the same file is ok
我在尝试将某些对象推送到服务器端的 json 文件时遇到问题(简单的 json-server)。当我从这个文件中获得 $http.get 信息时,一切正常,我得到了需要的信息。然后我希望用户填写一些输入字段,根据用户的输入构建对象,然后我想将该对象推送到我的 json 文件中。我正在尝试创建 $http.post 请求,但出现 returns 404 错误(POST http://localhost:3000/employees.json 404(未找到))。有人可以帮助我,告诉我做错了什么吗?
我的代码:
$scope.employList = [];
$scope.id;
$http.get("employees.json").then(function(response) {
for (var i = 0; i < response.data["Employees"].length; i++) {
$scope.employList.push(response.data["Employees"][i]);
};
});
$scope.getId = function() {
$scope.id = $scope.employList[$scope.employList.length-1].Id;
};
$scope.save = function (name, surname, position) {
$scope.getId();
var newObj = {
"Id": $scope.id + 1,
"firstName": name,
"secondName": surname,
"position": position
};
$http.post("employees.json", JSON.stringify(newObj)).then(function (item) {
employList.push(item);
});
};
我正在使用 AngularJS 并具有以下分支结构:
Branch structure
感谢您的帮助!
-----更新-----
这是我的 employees.json 文件:
{
"Employees": [
{
"Id": 0,
"firstName": "Jack",
"secondName": "Sparrow",
"position": "Captain"
},
{
"Id": 1,
"firstName": "Michael",
"secondName": "Jackson",
"position": "Singer"
},
{
"Id": 2,
"firstName": "Lionel",
"secondName": "Messi",
"position": "Footballer"
},
{
"Id": 3,
"firstName": "Steve",
"secondName": "Jobs",
"position": "Developer"
},
{
"Id": 4,
"firstName": "John",
"secondName": "Smith",
"position": "Developer"
}
]
}
试试这个代码:
$http.post("employees.json",newObj)
.then(function (response) {
employList.push(response.data);
});
最后我弄清楚出了什么问题。问题出在我附在屏幕截图上的目录结构中。 Json-服务器只维护一个主活动文件,可以获取非GET请求。所以我需要删除我的 employees.json 文件并将所有信息剪切并粘贴到 users.json 文件。然后一切正常。另外,为了方便起见,我将 users.json 重命名为 db.json。所有其他文件应位于 /public
目录。
我在尝试将某些对象推送到服务器端的 json 文件时遇到问题(简单的 json-server)。当我从这个文件中获得 $http.get 信息时,一切正常,我得到了需要的信息。然后我希望用户填写一些输入字段,根据用户的输入构建对象,然后我想将该对象推送到我的 json 文件中。我正在尝试创建 $http.post 请求,但出现 returns 404 错误(POST http://localhost:3000/employees.json 404(未找到))。有人可以帮助我,告诉我做错了什么吗?
我的代码:
$scope.employList = [];
$scope.id;
$http.get("employees.json").then(function(response) {
for (var i = 0; i < response.data["Employees"].length; i++) {
$scope.employList.push(response.data["Employees"][i]);
};
});
$scope.getId = function() {
$scope.id = $scope.employList[$scope.employList.length-1].Id;
};
$scope.save = function (name, surname, position) {
$scope.getId();
var newObj = {
"Id": $scope.id + 1,
"firstName": name,
"secondName": surname,
"position": position
};
$http.post("employees.json", JSON.stringify(newObj)).then(function (item) {
employList.push(item);
});
};
我正在使用 AngularJS 并具有以下分支结构: Branch structure
感谢您的帮助!
-----更新-----
这是我的 employees.json 文件:
{
"Employees": [
{
"Id": 0,
"firstName": "Jack",
"secondName": "Sparrow",
"position": "Captain"
},
{
"Id": 1,
"firstName": "Michael",
"secondName": "Jackson",
"position": "Singer"
},
{
"Id": 2,
"firstName": "Lionel",
"secondName": "Messi",
"position": "Footballer"
},
{
"Id": 3,
"firstName": "Steve",
"secondName": "Jobs",
"position": "Developer"
},
{
"Id": 4,
"firstName": "John",
"secondName": "Smith",
"position": "Developer"
}
]
}
试试这个代码:
$http.post("employees.json",newObj)
.then(function (response) {
employList.push(response.data);
});
最后我弄清楚出了什么问题。问题出在我附在屏幕截图上的目录结构中。 Json-服务器只维护一个主活动文件,可以获取非GET请求。所以我需要删除我的 employees.json 文件并将所有信息剪切并粘贴到 users.json 文件。然后一切正常。另外,为了方便起见,我将 users.json 重命名为 db.json。所有其他文件应位于 /public
目录。