Hỏi về XMLHttpRequest Javascript

var xhr = new XMLHttpRequest();
xhr.onload = function(){
	console.log(xhr.response);
}
xhr.open('POST','post.php');
xhr.send('name=test');

Cho em hỏi:
Giả sử có đoạn code như trên thì trong file post.php mình phải xử lý như thế nào ạ.
Bên post.php dùng $_POST['name']; thì nó không nhận được gì cả :frowning:

Ở xhr.open, bạn nên thêm param “true” (xhr.open(‘POST’,‘post.php’, true)

Khi gửi request, bạn có thể sẽ cần gửi thêm header (xhr.setRequestHeader), tuỳ theo từng trường hợp

Và nên dùng thêm xhr.onreadystatechange để bắt status/response từ server, giúp mình dễ xử lý hơn khi gặp lỗi.

3 Likes

Thế dùng $_GET['name'] thì nhận không?

1 Like

sở dĩ bên php không nhận là do khi client gửi đi không báo trước cho server biết tao sẽ gửi dữ liệu ở dạng gì. Khi đó server sẽ tự cho là bạn đang gửi raw string lên thôi nên không thực hiện phân tích và gán vào biến $_POST cho bạn. Cách giải quyết thì các bạn trên đã nói rồi

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?