2011-08-15 20 views
6

Tôi đang cố đăng dữ liệu lên trang PHP và kiểm tra phản hồi. Đây là một ví dụ. Có gì sai với mã này?POST từ XMLHttp với tham số

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

Hoặc là tôi có một typo ngu ngốc hay tôi không sử dụng các phương pháp send() một cách chính xác.

Trả lời

13

Tôi đã tìm ra. Tôi cần thiết lập tiêu đề yêu cầu.

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

source1

source2

Các vấn đề liên quan