Ajax POST返回成功,但不更新JSON文件

时间:2015-03-18 16:46:53

标签: javascript ajax json

我正在尝试将数据添加到* .JSON文件中,该文件只包含以下文本:{}。 Ajax返回“成功”,但文件仍然像以前一样。另外我注意到JSON文件是否为空,根本没有任何反应。请帮我找一个解决方案。我不知道麻烦在哪里。也许,你知道还有什么可能是问题的原因。谢谢。

ajax的代码:

 $.ajax({
     type: "POST",
     url: "data/test.json",
     data:  JSON.stringify({ "userName": "1", "password" : "1" }),
     contentType: "application/json; charset=utf-8",
     dataType: "json",
     success: function(data){alert("success");},
     fail: function(errMsg) {alert("fail");
     }
});

3 个答案:

答案 0 :(得分:1)

最好的解决方案是在服务器端安装denver并使用PHP代码。

这是js文件中的代码。

  deleteNewsItem: function(newsId, callback, scope) {
     var dataPath = this.dataPath;
      $.getJSON(dataPath + '/delete-news.php?id='+newsId, function(rawHeadlines) { 
         var headlines = [];
         $.each(rawHeadlines, function(index, rawHeadline) {
            headlines.push(rawHeadline.id);
        } 
     });
             if (callback) {
             callback.call(scope, headlines);
     }
     };

这是" delete_news.php"中的代码。文件。

<?php

$deleteId = isset($_GET['id'])?$_GET['id']:false;
   if ($deleteId){
     $content = file_get_contents('delete-news.json');
     $json = json_decode($content);

$newData = array();
foreach($json as $key=>$id){
$newData []= (array)$id;
}
$newData []= array("id"=>(int)$deleteId);


$fill_view = json_encode($newData);
file_put_contents('delete-news.json', ($fill_view));
echo $fill_view;
} else {
echo json_encode(array());
}
exit();

?>

答案 1 :(得分:0)

单独使用jquery无法保存json文件。 您必须实现服务器端代码才能使其正常工作。

答案 2 :(得分:-1)

您的代码中有一些错误,首先没有失败,但错误或失败。试试这个并告诉我它是否有帮助。 我认为如果您想获取或存储您需要服务器端的信息,则无法使用javascript / jquery(出于安全原因)将数据保存到文件中,如果您只是尝试存储少量数据,则可以使用cookie或localStorage(&#34; Key&#34;,&#34; Value as Json&#34;);

您可以将数据保存到localStorage,如下所示:

    $.get("data/test.json", null, function (data) {

    localStorage.setItem("data", JSON.stringify(data));
});

但遗憾的是,正如我之前所说,您无法使用javascript / jquery保存到文件中,请尝试使用localStorage进行临时存储。