json - ajax 发布请求已完成(状态:200),但未向 json 文件添加信息
问题描述
我的代码是通过 jQuery AJAX 简单地获取和发布到 JSON。这是 JSON 文件“drinks.json”
[{
"id": 1,
"name": "Will",
"drink": "coffee"
}]
我能够从 json 文件中读取数据,但是在尝试发布数据时永远不会将其放入 json 文件中。这是我的发帖请求:
$("#add-order").on("click", function () {
var order = {
id: 3,
name: $name.val(),
drink: $drink.val()
};
$.ajax({
method: "POST",
data: order,
url: "./drinks",
dataType: "json"
}).done(function(r){
console.log(r);
})
});
我正在使用 wampserver,我可以看到请求的状态是 200。我也尝试了 JSON.stringify(order),但没有成功。
解决方案
我认为您正在尝试将数据直接发布到 json 文件。不幸的是,你不能那么容易地做到这一点。您根本无法通过 AJAX 直接在您的服务器上写入文件,但您可以通过创建额外的小 PHP 文件并在那里发送数据来代替。
<?php
$arrFromJson = json_decode(file_get_contents("drinks.json"), true);
array_push($arrFromJson, $_POST["newDrink"]);
// change json accordingly -> var order = { newDrink: { ...
$newJson = json_encode($arrFromJson);
file_put_contents("drinks.json", $newJson);
?>
推荐阅读
- r - 如何使用 tidy verse 和 summarise 计算新列?
- javascript - 使用 JQuery 提交表单时检查 HTML 中所需的标记字段
- sql-server - 以编程方式添加聚合转换 - 计数不同到 SSIS 包
- python - 使用 Python 遍历文件夹时获取特定的 Excel 文件名
- html - CSS 类适用于表格内部,但不适用于表格本身
- go - xgo 交叉编译不适用于 alsa-lib
- docker - Docker 未启动 - 无法启动 Docker 应用程序容器引擎
- python - 合并多个 DataFrame
- javascript - 要求/导入一个已经在继承链上层导入的类是错误的吗?
- c# - 如何将位图照片转换为十六进制颜色代码?