POST из XMLHttp с параметрами

Я пытаюсь отправить данные на страницу 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 ().

Related of "POST из XMLHttp с параметрами"

Я понял. Мне нужно было установить заголовок запроса.

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

source1

source2