我尝试按照其他一些stackoverflow问题中的步骤进行操作,但是由于某种原因,我的服务器未显示任何接收请求的指示。我知道客户端正在发送请求,因为它显示在firefox调试器中。 这是js方法:
function writeToFile(dat) {
$.ajax({
url : 'dataSaveAjax.php',
method : 'post',
data : { 'data': JSON.stringify(dat) },
success : function( response ) {
alert( response);
}
});
}
PHP代码:
<?php
$fp = fopen('general.json', 'w');
fwrite($fp, json_encode($_POST['data']));
fclose($fp);
?>
答案 0 :(得分:0)
尝试像这样更新代码
<?php
$fp = fopen('general.json', 'w');
$writtingResponse = fwrite($fp, $_POST['data']);
fclose($fp);
echo $writtingResponse;
?>
您没有编写任何响应,并且对json进行了两次编码。
答案 1 :(得分:0)
首先,您需要了解什么是原因以及为什么我们的脚本不起作用。首先,让我们看一下服务器部分(php)。首先,将数据放在变量中,而不是$ _POST ['data']尝试执行以下操作:
<?php
$fp = fopen('general.json', 'w');
fwrite($fp, 'MyTest');
fclose($fp);
?>
如果这不起作用,则最有可能的原因是您需要设置文件(Chmod)的写权限。
如果所有记录均正确记录,则表明站点的客户端部分出了问题。对于POST / GET查询,我通常使用Postman。它不仅允许测试请求,还可以生成代码。如果您通过Postman运行查询并将结果写入文件,则JavaScript中的错误是明确的。尝试在浏览器中按F12键,然后转到js控制台,在那里您将看到一条错误消息。您是否在示例中使用jQuery,并且它已连接?在尝试执行脚本之前是否已连接? 尝试查看您尝试使用控制台(F12)发送的数据
console.log(JSON.stringify(dat));
是真的要收集您的数据,还是要向文件发送空数据?