【问题标题】:Cannot access value from JSON file received from $http.post无法访问从 $http.post 收到的 JSON 文件的值
【发布时间】: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


【解决方案1】:

文件中的构造看起来像一个数组,因此您可能想尝试下面的代码。

if(data[0].status == 1)

【讨论】:

  • 更好..修复源结构
  • @charlietfl 我认为知道它为什么不起作用很重要......我不想让他只是改变结构,而是要理解它是一个数组:)
  • @scartag 感谢您的价值回复。它表明问题出在其他地方。我已经编辑了我的帖子。 $http.post() 功能错误,$http.get() 功能正常。我不知道为什么当我提出这个请求时,这首先给了我错误 404。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 2014-04-23
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多