我正在尝试将数据添加到* .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");
}
});
答案 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进行临时存储。