Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用PHP和JS将文件保存到服务器?_Javascript_Php_File_Server_Save - Fatal编程技术网

Javascript 使用PHP和JS将文件保存到服务器?

Javascript 使用PHP和JS将文件保存到服务器?,javascript,php,file,server,save,Javascript,Php,File,Server,Save,我已经尝试了几个小时了,在谷歌上搜索并尝试了几种方法。代码是如此简单,我不明白为什么它不工作。我使用000webhost免费托管atm只是为了测试一下 我只是想把一个变量传递给php文件,让它保存在一个文本文件中,在本例中是“ayy”。 最新代码(甚至未创建文件): JS代码 function doSave(){ xhr.open("POST", "save.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-

我已经尝试了几个小时了,在谷歌上搜索并尝试了几种方法。代码是如此简单,我不明白为什么它不工作。我使用000webhost免费托管atm只是为了测试一下

我只是想把一个变量传递给php文件,让它保存在一个文本文件中,在本例中是“ayy”。 最新代码(甚至未创建文件):

JS代码

function doSave(){
xhr.open("POST", "save.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xhr.send("ayy");
}
PHP代码(save.PHP)

save.php

<?php
$post_data = $_POST['datastr'];
$f = fopen("data.txt", "w+");
fwrite($f, $post_data);
fclose($f);
?>

有什么建议说明为什么这可能不起作用吗?我所能想到的就是服务器不支持它或其他什么,但是如果我在php文件中指定变量,并使用get请求简单地发布变量,我就可以让它正常工作。但是,数据将是动态的,所以我需要使用js从客户端传递数据


谢谢。

在第二个示例中,您应该有
file\u get\u内容('php://input');
而不是
$\u POST['datastr']
。如果您希望在
$\u POST
中使用它,则需要在send方法中将其作为:
datastr=ayy
传递,而不仅仅是值。顺便说一句,在第一个示例中,在开始使用js函数之前,您从未在js函数中定义过
xhr
。它是在外面定义的吗?天哪,我不知道我怎么会错过了xhr。代码现在可以工作了(第一个示例)。谢谢
function doSave(){
    var datastr = "ayy";
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.setRequestHeader('Content-Type', 'application/json');
  xmlhttp.open("GET", "save.php", true);
  xmlhttp.send(datastr);
}
<?php
$post_data = $_POST['datastr'];
$f = fopen("data.txt", "w+");
fwrite($f, $post_data);
fclose($f);
?>