服务器未看到javascript post请求

服务器未看到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

我正试图做一个从javascript到php的简单文章,但没有得到要传输的数据。我在Ubuntu上使用Apache2。如果我在Mozilla中运行php代码,它会按照我的要求运行,但是当从javascript调用php时,php似乎无法在服务器端将信息发送到php。我试图简化代码,只关注post函数。以下是html代码:

<!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。我不明白标题的重要性。它现在正在工作。