【发布时间】:2018-08-16 05:48:58
【问题描述】:
我读过其他类似404错误的帖子,我的问题是我可以正确查询JSON数据,但无法保存而不出现此错误。
我正在使用 Angular 的 $resource 与 JSON 端点进行交互。我从工厂返回的资源对象如下:
app.factory('Product', function($resource) {
return $resource('api/products.json', { id: '@id' });
});
我的 JSON 是有效的,我可以成功地使用资源的 query() 方法返回我的指令中的对象,如下所示:
var item = Product.query().$promise.then(function(promise) {
console.log(promise) // successfully returns JSON objects
});
但是,当我尝试使用 save() 方法保存已更新的项目时,我收到 404 Not Found 错误。
这是我得到的错误:
http://localhost:3000/api/products.json/12-34 404 (Not Found)
我知道我的文件路径是正确的,因为我可以返回项目来更新视图。为什么会出现此错误?如何保存项目?
这是我的数据结构:
[
{
"id": "12-34",
"name": "Greece",
"path": "/images/athens.png",
"description": ""
},
...
]
【问题讨论】:
-
您确定
POST请求应该命中products.json/12-34? -
您收到此错误是因为服务器找不到此文件
http://localhost:3000/api/products.json/12-34并且没有此路径 -
如果我执行
Product.save({ id: myObject.id })之类的操作,并且myObject.id等于12-34,并且如果我的数据结构如上,不应该吗? -
@Grundy 如果我做
Product.save({ id: myObject.id }),它不会返回具有匹配ID 的JSON 文件的inside 对象吗?还是它正在寻找一个名为12-34的文件? -
不,你有一个简单的json文件,不能处理任何查询,你应该为进程
post,put和其他查询添加一些服务器代码
标签: json angularjs angular-resource