Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajaxpost返回成功,但没有';t更新JSON文件_Javascript_Ajax_Json - Fatal编程技术网

Javascript ajaxpost返回成功,但没有';t更新JSON文件

Javascript ajaxpost返回成功,但没有';t更新JSON文件,javascript,ajax,json,Javascript,Ajax,Json,我正在尝试向*.JSON文件添加数据,该文件只有以下文本:{}。Ajax返回“success”,但文件仍与以前一样。我还注意到,如果JSON文件为空,则根本不会发生任何事情。请帮我找到解决办法。我不知道问题出在哪里。也许,你知道问题的原因是什么。多谢各位 ajax的代码: $.ajax({ type: "POST", url: "data/test.json", data: JSON.stringify({ "userName": "1", "password"

我正在尝试向*.JSON文件添加数据,该文件只有以下文本:{}。Ajax返回“success”,但文件仍与以前一样。我还注意到,如果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");
     }
});

单独使用jquery保存json文件是不可能的。
您必须实现一个服务器端代码才能工作。

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

您可以按如下方式将数据保存到本地存储:

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

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

但不幸的是,正如我前面所说,您无法使用javascript/jquery保存到文件,请尝试使用localStorage作为临时存储。

最好的解决方案是安装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”文件中的代码



POST请求不会这样做。您需要服务器端代码。SLaks,谢谢您的回答。但是,如果任务不包含服务器端代码,我应该怎么做才能将数据保存到文件中?我肯定你不能在客户端进行归档,但是这里有一些方法,正如你所说的,你没有服务器端Ajax请求,请求的是服务器或外部源(API,其他网站)它充当服务器端。@anna_manzhula你能告诉我返回了什么警报(数据)吗?谢谢你的回答。但是,如果任务不包含服务器端代码,我应该如何将数据保存到文件中?或者我怎样才能找到这个代码。。。对不起,我对JS很陌生。谢谢你的回答。一切都没有改变。结果是一样的。我认为,如果您想要获取或存储服务器端所需的信息,则无法使用javascript/jquery将数据保存到文件中(出于安全原因),如果您仅尝试存储少量数据,则可以使用cookie或localStorage(“Key”,“Value As Json”);是的,我正在尝试保存ItemList中已删除项目的ID编号。项目的结构假定我应该将此数据存储到JSON文件中。。或者我可以将此文件放入本地存储?localStorage以字符串表示形式保存数据,即您可以在其中保存json,但不能保存文件。
<?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();

?>