【问题标题】:Saving JSON data to server using AngularJS - disappears on page refresh使用 AngularJS 将 JSON 数据保存到服务器 - 在页面刷新时消失
【发布时间】:2015-10-15 08:46:57
【问题描述】:

我正在使用 AngularJS 编写一个单页 Web 应用程序。它包括一个表格,其中包含从服务器上的 JSON 文件中提取的数据。我正在使用$http 服务进行$http.get() 调用以从此文件中填充表格。

页面上还有一个用于向表格添加数据的表单。我正在使用 $http.post() 将表单中的数据添加到 JSON 文件(这似乎工作正常,因为我的 .success() 回调在发布调用后运行)。

但是,每当我刷新页面时,我发现我应该发布的数据并没有出现在表格中。 $http 请求是否不足以将数据永久保存到文件中?

更新:

我的$http.post() 无法正常工作。我的 JSON 文件在发布请求后永远不会更新。不知道为什么。见以下代码:

$scope.postNewJob = function(newJob) {
    $http.post('json/jobList.json', newJob)
        .success(function(data) {
            console.log(data);

        })
        .error(function(data,status,error,config) {
            alert("Error: "+error+" Post to server failed.\nStatus: "+status);
        });
};

【问题讨论】:

  • 你是在将文件写入服务器吗?
  • 这不是别人可以帮你解决的问题。没有人知道你在服务器上用发布的数据做了什么。所以唯一可能的建议:检查服务器端脚本、数据库等,控制台中的响应状态。
  • 成功意味着良好的 http 状态。它没有说明成功的数据保存。
  • 我仔细检查了我的代码,但我的 $http.post 根本没有真正更新我的 json 文件。我编辑了我的问题以反映这一点

标签: javascript json angularjs http refresh


【解决方案1】:

我假设您正在将数据正确保存到服务器,问题是正在缓存 JSON 数据的 GET 请求。要绕过它,您可以使用查询字符串参数来破坏缓存或在服务器上设置正确的无缓存标头。

$http({
    url: '...',
    params: { 'ts': new Date().getTime() }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2014-03-27
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多