Thông thường chỉ có phương thức GET được sử dụng khi tạo ứng dụng Ajax. Nhưng có một số trường hợp POST là cần thiết khi tạo yêu cầu ajax. Điều này có thể vì nhiều lý do. Ví dụ: yêu cầu POST được coi là an toàn hơn yêu cầu GET vì việc tạo yêu cầu POST tương đối khó hơn tạo yêu cầu GET
Yêu cầu
- Tạo một đối tượng XMLHTTPRequest sử dụng phương thức POST
- Xem liệu các đối số được truyền cho nó có xuất hiện trong mảng '
3' trong PHP khôngvar url = "get_data.php"; var params = "lorem=ipsum&name=binny"; http.open["GET", url+"?"+params, true]; http.onreadystatechange = function[] {//Call a function when the state changes. if[http.readyState == 4 && http.status == 200] { alert[http.responseText]; } } http.send[null];
Mã số
Đối tượng yêu cầu XMLHTTP
Để đơn giản, chúng ta sẽ tạo đối tượng XMLHTTPRequest bằng cách sử dụng hàm ' XMLHttpRequest[]' được Firefox hỗ trợ. Tôi tin rằng bạn biết cách thích hợp để tạo đối tượng XMLHttpRequest trên nhiều trình duyệt. Nếu không, hãy học điều đó trước
var http = new XMLHttpRequest[];
Sử dụng phương thức GET
Bây giờ chúng tôi mở một kết nối bằng phương thức GET
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open["GET", url+"?"+params, true];
http.onreadystatechange = function[] {//Call a function when the state changes.
if[http.readyState == 4 && http.status == 200] {
alert[http.responseText];
}
}
http.send[null];
Tôi thực sự hy vọng rằng điều này đã rõ ràng đối với bạn - Tôi giả định rằng bạn biết một chút mã hóa Ajax. Nếu không, vui lòng đọc hướng dẫn ajax giải thích những phần này trước khi tiếp tục
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];
Thay đổi đầu tiên [và rõ ràng nhất] là tôi đã thay đổi đối số đầu tiên của hàm
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open["GET", url+"?"+params, true];
http.onreadystatechange = function[] {//Call a function when the state changes.
if[http.readyState == 4 && http.status == 200] {
alert[http.responseText];
}
}
http.send[null];
4 từ GET thành POST. Cũng lưu ý sự khác biệt trong đối số thứ hai - trong phương thức GET, chúng tôi gửi các tham số cùng với url được phân tách bằng dấu '?' http.open["GET",url+"?"+params, true];
Nhưng trong phương thức POST, chúng ta sẽ chỉ sử dụng url làm đối số thứ hai. Chúng tôi sẽ gửi thông số sau
http.open["POST", url, true];
Một số tiêu đề http phải được đặt cùng với bất kỳ yêu cầu POST 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 tôi đang nói rằng dữ liệu gửi ở định dạng gửi biểu mẫu. Chúng tôi cũng cung cấp độ dài của các thông số chúng tôi đang gửi
Chúng tôi đặ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
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open["GET", url+"?"+params, true];
http.onreadystatechange = function[] {//Call a function when the state changes.
if[http.readyState == 4 && http.status == 200] {
alert[http.responseText];
}
}
http.send[null];
5 tại đây - chèn vào div bằng cách sử dụng InternalHTML[AHAH], eval it[JSON] hoặc bất kỳ thứ gì khácvar http = new XMLHttpRequest[];
0Cuối cùng, chúng tôi gửi các tham 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à một 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
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open["GET", url+"?"+params, true];
http.onreadystatechange = function[] {//Call a function when the state changes.
if[http.readyState == 4 && http.status == 200] {
alert[http.responseText];
}
}
http.send[null];
6. Biến
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open["GET", url+"?"+params, true];
http.onreadystatechange = function[] {//Call a function when the state changes.
if[http.readyState == 4 && http.status == 200] {
alert[http.responseText];
}
}
http.send[null];
7 đượ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Đó là nó. Nếu bạn muốn xem hoạt động của tập lệnh này, tôi đã thiết lập một trang demo cho Ajax bằng cách sử dụng bài đăng
thư viện
Các phương pháp đã cho ở trên là cách thực hiện thủ công - bạn có thể tự động hóa việc này bằng cách sử dụng hàng trăm thư viện Ajax ngoài kia