我有一个带有jQuery的html页面,我使用ajax将数据发送到php文件以保存数据。我见过其他类似的问题,但似乎都不符合我的目的。数据是一个帧的语义。我的网页看起来像这样:<iframe srcdoc="<h1>hello</h1>" id="iframe"></iframe><br /><input type="text" placeholder="Filename to save as..." id="fn"><input type="button" value="Save" onclick="saveDoc(document.querySelector('#fn').value)">我的 j 查询和 JS 看起来像这样:function saveDoc(e) { let iframe = document.querySelector("#iframe"); let data = {"srcdoc": iframe.srcdoc, "lnk": e}; $.ajax({ type: "POST", url: "saver.php", dataType : "text", contentType: "application/json", data: data, cache: false, timeout: 3000, success: function (data) { alert("SUCCESS"); console.log(data); }, error: function (e) { alert(e); } });}我的php代码看起来像这样:<!doctype html><html><body><?php if (isset($_POST["lnk"]) && isset($_POST["srcdoc"])) { $myfile = fopen($_POST["link"], "w"); fwrite($myfile, $_POST["srcdoc"]); fclose($myfile); echo $_POST["lnk"]; echo "\n <br/>"; echo $_POST["srcdoc"]; } else { echo "Error"; }?></body></html>当我运行它时,我收到一条警告消息,说“成功”。控制台.log给了我:<!doctype html><html><body>Error</body></html>这里发生了什么,我做错了什么?
1 回答

Smart猫小萌
TA贡献1911条经验 获得超7个赞
contentType: "application/json"
您以 JSON 形式显式地将其发送到服务器 - 因此您无法通过 $_POST 访问它(PHP 仅填充内容类型或 的 $_POST)。application/x-www-form-urlencoded
multipart/form-data
要么删除 ,以便它可以回退到发送表单数据的正常方式,要么继续阅读如何在PHP中实际读取POSTed JSON数据。(这将涉及首先读取数据,请参阅使用PHP接收JSON POSTcontentType
php://input
)
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消