服务器未看到javascript post请求
我正试图做一个从javascript到php的简单文章,但没有得到要传输的数据。我在Ubuntu上使用Apache2。如果我在Mozilla中运行php代码,它会按照我的要求运行,但是当从javascript调用php时,php似乎无法在服务器端将信息发送到php。我试图简化代码,只关注post函数。以下是html代码:服务器未看到javascript post请求,javascript,php,Javascript,Php,我正试图做一个从javascript到php的简单文章,但没有得到要传输的数据。我在Ubuntu上使用Apache2。如果我在Mozilla中运行php代码,它会按照我的要求运行,但是当从javascript调用php时,php似乎无法在服务器端将信息发送到php。我试图简化代码,只关注post函数。以下是html代码: <!doctype html> <html> <head> <title>Post Test </title> &l
<!doctype html>
<html>
<head>
<title>Post Test </title>
</head>
<body>
<p id="demo"></p>
<script>
var http = new XMLHttpRequest();
var url = "post_test.php";
var file_data = "text string";
http.open("POST", url, true);
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200){
document.getElementById('demo').innerHTML=this.responseText
};
}
http.send(file_data);
</script>
</body>
</html>
后测试
var http=new XMLHttpRequest();
var url=“post_test.php”;
var file_data=“文本字符串”;
http.open(“POST”,url,true);
http.onreadystatechange=函数(){
如果(http.readyState==4&&http.status==200){
document.getElementById('demo').innerHTML=this.responseText
};
}
http.send(文件\数据);
以下是php:
<?php
var_dump(isset($_POST['file_data']));
?>
我在屏幕上看到一条错误的信息。
我检查了文件访问权限。这两个文件都为所有文件设置了rwx。
我正在努力学习html、javascript和php。我想暂缓使用jQuery,直到我能做得更多。您应该在数据中指出它应该放在哪个字段名下。在您的情况下,它是文件\u数据
var myData = "file_data=foo";
http.send(myData);
然后是你的php
<?php
var_dump(isset($_POST['file_data']));
?>
您正在向PHP发送一个纯文本字符串。您在发送到服务器的字符串中没有提到“file_data”,那么您希望PHP在
$\u POST
中的键中从何处获取该名称呢?PHP在服务器上运行,它看不到您的JS变量名
PHP将使用根据应用程序/x-www-form-urlencoded
和多部分/表单数据
数据格式格式化的数据填充$\u POST
您可以像这样构建应用程序/x-www-form-urlencoded
:
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var data = "file_data=" + encodeURIComponent(file_data);
http.send(data);
您是否查看了浏览器的开发人员工具,特别是网络和控制台选项卡以了解发生了什么?我确实启用了开发人员控制台。没有显示错误。我在apache错误日志中也没有看到错误。谢谢Quentin。我不明白标题的重要性。它现在正在工作。