【发布时间】:2017-03-14 03:52:35
【问题描述】:
我是这个语言堆栈的新手...试图了解为什么服务器上的 .json 文件没有填充来自 ajax 帖子的数据。下面是两个函数。第一个是运行在浏览器上的jquery函数,另一个是运行在服务器上的jquery调用的php函数。服务器上目录的文件权限为读写,/var/www
目前有一个名为 post_Sched.json 的零长度文件,php 函数应在其中写入 json 数据。
<script>
function theFunction() {
console.log("about to post to post_Sched.php")
console.log("post_Sched_jstringed = " + post_Sched_jstringed);
request = $.ajax({
url: "post_Sched.php",
type: "POST",
data: { 'data': post_Sched_jstringed },
//dataType: "JSON",
success: function (response) {
// response from php
$("#jresult").text(JSON.stringify(response));
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
console.log("just posted to post_Sched.php")
}
</script>
</head>
<body>
<h2>JSON Post Response: </h2>
<div id="jresult"></div>
</body>
</html>
还有一个名为 post_Sched.php 的 php 文件
<?php
$data = $_POST['data'];
$file = fopen('post_Sched.json','w');
fwrite($file, $data);
fclose($file);
echo json_encode($data);
?>
附言JSON数据的jquery函数中有一个全局变量,我可以看到正确的字符串化结果,所以我知道jsonDat是正确的:
var post_Sched_jstringed = JSON.stringify(Sched);
开发者工具控制台显示 parsererror SyntaxError: Unexpected token
谁能解释一下这个问题以及如何解决它?
提前致谢!
【问题讨论】:
-
希望您的 PHP 代码中没有 DOM 就绪的处理程序和 console.logs?
-
是的,显然我做到了。我在这里对 php 进行了编辑,以显示当前状态。我还运行了此处显示的内容,但尚未运行。
-
“顺便说一句,我在 Object responseText 中看到了整个 php 函数(来自 chrome 中的开发人员工具)。”,所以它返回 php 函数就好像它是 HTML?我不知道 php,但如果我没看错,它并没有执行代码,而且我没有看到 或它是如何进行的,这是故意的吗?