【发布时间】:2017-04-15 14:58:45
【问题描述】:
我有这个问题。我有用 AngularJS 编写的购物清单项目应用程序。我通过对以 JSON 格式编写的本地文件发出的 AJAX 请求模拟了与服务器的连接。
例如,我有一个文件返回一个虚假的服务器状态:
[{
"status": 1
}]
我尝试通过编写代码来接收此状态的值:
groceryService.save = function(entry){
var updatedItem = groceryService.findById(entry.id);
//We update the existing item
if(updatedItem){
$http.post("data/updated_status.json", entry)
.success(function(data){
//HERE IS PROBLEM -------------------
if(data.status == 1){
//END OF PROBLEM --------------------
updatedItem.completed = entry.completed;
updatedItem.itemName = entry.itemName;
updatedItem.date = entry.date;
}
})
.error(function(data,status){
});
//We creating new item
else{
}
正如我所见,我无法访问此状态值,也不知道为什么。在 Chrome 浏览器中,我没有收到任何错误代码。显然,正如我所见,AngularJS 必须以更改的格式发回这个 JSON 数据,我必须以不同的方式访问,但是如何?
我以为 AngularJS 会将值 1 从 int 解析为字符串,但我做了一些小尝试,但它失败了。
我当然在我的服务指令中附加了 $http 服务:
app.service("GroceryService", function($http){
我在 xampp 本地服务器上运行我的文件。
如果有人能帮我解决这个问题,那就太好了:-)。
提前致谢。
已编辑:--------------------------------------------
我发现问题出在 $http.post() AngularJS 方法上。当我将代码切换到 get() 方法时,一切正常。
当我触发 $http.post() 时,我从 chrome 浏览器收到错误 404。我的代码如下所示:
$http.post('data/ai.json', entry)
还有这个:
$http.post('data/update_status.json', entry)
口渴我以为我的文件名有误,所以我将其更改为ai.json,但这不是问题。我不知道问题出在哪里,我使用方括号 IDE,它具有在浏览器中实时预览书面代码的选项。它创建了一些服务器来执行此操作。
我还附上了我的文件目录的屏幕截图和来自 chrome 的错误 404 的屏幕截图。
我仍然需要帮助来解决这个问题。在此先感谢:-)。
Error 404 from Chrome when I click save button.
Directory of files. In data folder are all my .json files
在网上搜索解决方案时,我发现了这个:
$http.post("data/update_status.json", entry, {
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
})
但是我在我的代码中实现了它并得到了相同的错误 404 结果。我希望得到一些帮助:-)。
已编辑 -------------------------------------------
你好
我仍然没有解决这个错误问题。我将我的文件上传到教程点上的编码场,以查明是否不是服务器问题。当我调用 $http.post() 方法时,我仍然得到错误 404。我 100% 确定我写了正确的文件路径。
谁能帮我解决这个问题。显而易见的结论是错误在我的代码中,因为编码地的服务器应该可以正常工作。
有帮助吗? :-)
谢谢
【问题讨论】:
-
为什么响应中的外部数组?是否打算发送多个具有状态属性的项目?如果没有,请摆脱外部数组
-
@charlietfl 感谢您注意到这个数组。确实没有必要。我已经删除了。
标签: javascript angularjs json ajax