Javascript 无法从外部PHP文件中的AJAX调用读取POST数组

Javascript 无法从外部PHP文件中的AJAX调用读取POST数组,javascript,php,html,ajax,post,Javascript,Php,Html,Ajax,Post,我已经尝试了谷歌所能提供的所有解决方案,但我无法从外部PHP文件中的POST数组读取数据。这是文本字段的HTML <form> <textarea id="comment_text_area" name="comments" rows="5" cols="40"> </textarea> <label for="comment_text_area">Comment:</label> &l

我已经尝试了谷歌所能提供的所有解决方案,但我无法从外部PHP文件中的POST数组读取数据。这是文本字段的HTML

    <form>
    <textarea id="comment_text_area" name="comments" rows="5" cols="40">     
    </textarea>
    <label for="comment_text_area">Comment:</label>
    <br>
    <input type="submit" name="submit" value="Submit" onclick="SaveComments()">
    </form>
。。。和PHP文件

    <?php
    if(isset($_POST['comments']))
    {
    $data = htmlentities($_POST['comments']);
    $file = "comments.txt";
    file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
    }
    else
    {
    $data = "empty";
    $file = "comments.txt";
    file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
    }
    ?>
没用。而且,根据我为此所做的研究,这难道不应该只在接到电话时才有必要吗?(我需要使用POST)

  • 使POST呼叫同步。没有什么变化 我知道要传递的元素的名称必须是PHP脚本中所依赖的名称,但它不起作用。我不想设置form action=“”,因为我不想重定向,这就是为什么我要使用AJAX。 最后,我注意到,当我单击submit时,它正在更改URL,这是我希望从GET获得的。那就是说要具体点,对吗?我清楚地把它标记为POST

    有人知道我做错了什么吗


    请注意,如果是在JS方面,请不要使用jQuery。到目前为止,我一直避免这样做,我正努力保持这种状态

    您需要一个变量来传入请求,而不仅仅是作为

    xhr.send("comments="+data);
    

    因此,在服务器端,您可以通过参数名称检索数据。

    非常感谢。工作得很有魅力。我不知道为什么在网上很难找到。
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    
    xhr.send("comments="+data);