2011-08-15 2 views
6

私はPHPページにデータを投稿してレスポンスをチェックしようとしています。ここに例があります。このコードで何が問題になっていますか?POSTによるXMLHttpのパラメータ付き

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

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> 

私は愚かなタイプミスを持っているか、私は正確にsend()メソッドを使用していないのどちらか。

答えて

13

私はそれを理解しました。リクエストヘッダーを設定する必要がありました。

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

source1

source2

関連する問題