THAM KHẢO: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Phương thức POST
Chúng tôi sẽ thực hiện một số sửa đổi để phương thức POST sẽ được sử dụng khi gửi yêu cầu ...
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
Một số tiêu đề http phải được đặt cùng với bất kỳ yêu cầu ĐĂNG nào. Vì vậy, chúng tôi đặt chúng trong những dòng này ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Với những dòng trên, về cơ bản chúng ta đang nói rằng dữ liệu được gửi ở định dạng của một biểu mẫu gửi. Chúng tôi cũng cung cấp độ dài của các tham số mà chúng tôi đang gửi.
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
Chúng tôi đặt một trình xử lý cho sự kiện thay đổi 'trạng thái sẵn sàng'. Đây là cùng một trình xử lý mà chúng tôi đã sử dụng cho phương thức GET. Bạn có thể sử dụng http.responseText tại đây - chèn vào một div bằng innerHTML (AHAH), đánh giá nó (JSON) hoặc bất kỳ thứ gì khác.
http.send(params);
Cuối cùng, chúng tôi gửi các thông số với yêu cầu. Url đã cho chỉ được tải sau khi dòng này được gọi. Trong phương thức GET, tham số sẽ là giá trị null. Nhưng trong phương thức POST, dữ liệu được gửi sẽ được gửi dưới dạng đối số của hàm gửi. Biến params được khai báo ở dòng thứ hai là lorem=ipsum&name=binny
- vì vậy chúng tôi gửi hai tham số - 'lorem' và 'name' với các giá trị 'ipsum' và 'binny' tương ứng.