使用参数从XMLHttp发布POST

sty*_*fle 10 javascript php ajax

我正在尝试将数据发布到PHP页面并检查响应.这是一个例子.这段代码有什么问题?

的index.html

<html>
<head>
    <title>Post Ajax</title>
    <script type="text/javascript">
        function post(foo, bar) {
            var xmlhttp = new XMLHttpRequest();

            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    alert(xmlhttp.responseText);
                }
            }

            xmlhttp.open("POST", "ajax.php", true);
            xmlhttp.send("foo=" + foo + "&bar=" + bar);
        }
    </script>
</head>
<body>
    <input type="button" value="Click me" onclick="post('one','two');" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

ajax.php

<?php
if (array_key_exists('foo', $_POST) && array_key_exists('bar', $_POST)) {

    $foo = $_POST['foo'];
    $bar = ($_POST['bar']);
    // do stuff with params

    echo 'Yes, it works!';

} else {
    echo 'Invalid parameters!';
}
?>
Run Code Online (Sandbox Code Playgroud)

我有一个愚蠢的错字或我没有正确使用send()方法.

sty*_*fle 20

我想到了.我需要设置请求标头.

xmlhttp.open("POST", "ajax.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("foo=" + foo + "&bar=" + bar);
Run Code Online (Sandbox Code Playgroud)

来源1

源2