无法从$ http.post

时间:2017-04-15 14:58:46

标签: javascript angularjs json ajax

我有这个问题。我有用AngularJS编写的购物清单项目应用程序。我通过对以JSON格式编写的本地文件的AJAX请求来模拟与服务器的连接。

我有一个文件,它给我一个假的serwer状态:

[{
    "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会将值从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'}
  })

但是我在我的代码中实现了它并获得了相同的Error 404结果。我希望得到一些帮助: - )。

EDITED -------------------------------------------

你好

我仍然没有解决这个错误问题。我将我的文件上传到tutorialspoint上的编码区,以查明它是否不是服务器问题。当我调用$ http.post()方法时,我仍然得到错误404.我100%确定我写了正确的文件路径。

任何人都可以帮我解决这个问题。明显的结论是错误在我的代码中,因为编码地的服务器应该运行良好。

任何帮助人员? : - )

由于

1 个答案:

答案 0 :(得分:1)

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

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