这是我的javascript,它包含保存文件的功能。
function saveMap()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
map = document.getElementById("sectorTableMap").innerHTML;
data = '<table id="sectorTableMap">';
data += map;
data += '</table>';
document.getElementById("sectorTableMap").innerHTML = data;
//alert("done");
//alert(data);
if(fileName=="lastSave - RENAME") {
return alert("Please set a file name under [CONFIG]");
}
else {
//alert(data);
//alert(user);
//alert(fileName);
xmlhttp.open("POST","http://pardustools.comuf.com/saveMap.php?t="+Math.random(),true);
xmlhttp.send('map='+data+'&user='+user+'&fileName='+fileName);
//alert(data);
//alert(user);
//alert(fileName);
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//return alert("File has successfully been saved!");
return alert(xmlhttp.responseText);
}
}
}
这也是我发布的文件。
<?php
$user = strtolower($_POST['user']);
$map = $_POST['map'];
$fileName = "savedMaps/".$user."/".$_POST['fileName'].".html";
file_put_contents($fileName,$map);
echo $fileName."<br />".$map;
?>
这是我在php文件上收到的输出。
savedMaps //。HTML
它应该更像是
savedMaps / randomName / fileName.html
修改
为用户设置。
user = "<?php $cookie = $_COOKIE['mapperlogauth']; echo strtolower($cookie['user']);?>";
设置数据... 它位于saveMap()函数下,以map。
开头答案 0 :(得分:1)
您正在使用PHP的$ _POST get,您没有发布任何变量,您应该在您的情况下使用$ _GET,或者将您的xmlhttp发送更改为正确发布。 编辑你也缺少内容类型标题来做一个成功的帖子
编辑您还应该知道,使用您正在使用的技术可以发送多少限制。 (这是一个获取,而不是一个帖子,即使你指定它)
我还建议调查jQuery以实现跨浏览器兼容性和易用性。
修改的
这里有一些代码可以让你通过POST获取它:
xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
答案 1 :(得分:0)
您是否尝试过使用:
xmlhttp.send('map=dummy&user='+user+'&fileName='+fileName);
我怀疑它可能是由编码引起的。