php - 带有参数的 XMLHttp POST

标签 php javascript 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>

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!';
}
?>

要么我有一个愚蠢的拼写错误,要么我没有正确使用 send() 方法。

最佳答案

我想通了。我需要设置请求 header 。

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

source1

source2

关于php - 带有参数的 XMLHttp POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071544/

相关文章:

php - 带有命名参数的 vsprintf 或 sprintf,或者 PHP 中的简单模板解析

javascript - 如何在 jasmine 中测试 $http 服务

jquery - 以 html 形式显示图像,该图像从 ajax 调用作为 MIME 媒体类型返回

php - 部分提取 php 代码的正则表达式((数组定义))

php - 在 php 代码中首先发送 "SetCookie"的问题

php - 如何从文本文件中读取数组?

java - HtmlUnitDriver 中预期的内容类型为 'application/javascript'

javascript改变字体大小和行间距遇到

php - Laravel 在 ajax 成功调用另一个带有数据的 Controller 后

javascript - Ajax 只适用于部分用户?