Làm thế nào để bạn thực hiện một yêu cầu POST đơn giản trong Javascript mà không cần sử dụng biểu mẫu và không đăng lại?Yêu cầu POST (Javascript)
Trả lời
Bạn có thể làm điều này bằng AJAX gọi (đối tượng XMLHttpRequest)
Tôi nghĩ rằng nếu anh ta muốn sử dụng AJAX anh ta đã sử dụng. Trong câu trả lời của tôi, tôi đã thực hiện yêu cầu đăng ** mà không có 'AJAX' ** và không mở trang, bật lên hoặc làm mới trang :). –
Mặc dù tôi đang lấy mẫu mã từ câu trả lời @sundeep, nhưng việc đăng mã ở đây cho đầy đủ
var url = "sample-url.php";
var params = "lorem=ipsum&name=alpha";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
//Send the proper header information along with the request
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
Vì vậy, đơn giản, tôi thích nó: D –
Tôi đã thực hiện một chức năng gửi yêu cầu mà không cần làm mới trang, mà không cần mở trang và mà không có AJAX. Việc xử lý là vô hình cho người dùng. Tôi sử dụng một iframe giả để gửi yêu cầu:
/**
* Make a request without ajax and without refresh the page
* Invisible for the user
* @param url string
* @param params object
* @param method string get or post
**/
function requestWithoutAjax(url, params, method){
params = params || {};
method = method || "post";
// function to remove the iframe
var removeIframe = function(iframe){
iframe.parentElement.removeChild(iframe);
};
// make a iframe...
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.onload = function(){
var iframeDoc = this.contentWindow.document;
// Make a invisible form
var form = iframeDoc.createElement('form');
form.method = method;
form.action = url;
iframeDoc.body.appendChild(form);
// pass the parameters
for(var name in params){
var input = iframeDoc.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = params[name];
form.appendChild(input);
}
form.submit();
// remove the iframe
setTimeout(function(){
removeIframe(iframe);
}, 500);
};
document.body.appendChild(iframe);
}
Bây giờ bạn có thể làm điều đó:
requestWithoutAjax('url/to', { id: 2, price: 2.5, lastname: 'Gamez'});
Xem cách thức hoạt động !: http://jsfiddle.net/b87pzbye/10/.
EDIT: có vẻ như ai đó đã tìm ra cách để làm cho một phiên bản làm việc mà không nâng cao một lá cờ tấn công XSS tiềm năng. http://jsfiddle.net/b87pzbye/37/ –
- 1. Yêu cầu AFNetworking và POST
- 2. Nguồn gốc yêu cầu POST
- 3. yêu cầu POST của node.js
- 4. Yêu cầu POST bằng wrk?
- 5. Cách gửi yêu cầu POST?
- 6. Sử dụng Yêu cầu POST JSON
- 7. Node.js HTTPS POST Yêu cầu Tiêu đề
- 8. Android, Java: Yêu cầu POST HTTP
- 9. Hướng dẫn yêu cầu RESTKit POST
- 10. varnish caching của POST yêu cầu
- 11. Nodejs POST yêu cầu multipart/form-data
- 12. Thực hiện yêu cầu HTTP POST
- 13. Gửi yêu cầu POST bằng netcat
- 14. Bắt yêu cầu POST trên Symfony2
- 15. Yêu cầu POST và PUT AFNetworking
- 16. $ .post ném "Yêu cầu bất hợp pháp"
- 17. Yêu cầu POST với phần thân JSON
- 18. Yêu cầu POST trở thành GET
- 19. Một cách hay để chuyển hướng bằng yêu cầu POST?
- 20. JavaScript: biến toàn cầu sau khi Ajax yêu cầu
- 21. Chuyển hướng sau khi yêu cầu POST với jquery
- 22. HttpURLConnection luôn thực hiện yêu cầu GET thay vì yêu cầu POST mặc dù setDoOutput (true) và setRequestMethod ("POST")
- 23. Nút html có thể tạo trước yêu cầu POST không?
- 24. Yêu cầu phương pháp 'POST' không được hỗ trợ
- 25. Rescue_from cho javascript yêu cầu
- 26. Rails tạo ban hành yêu cầu GET thay vì yêu cầu POST
- 27. HTTP: Yêu cầu POST nhận được 302, yêu cầu chuyển hướng có phải là GET không?
- 28. Cách gửi yêu cầu tới yêu cầu HTTP POST tới máy chủ
- 29. ICS Android 4.0 chuyển HttpURLKết nối yêu cầu GET thành yêu cầu POST
- 30. POCO C++ - NET SSL - cách POST yêu cầu HTTPS
có lẽ tốt nhất nên cung cấp thêm chi tiết? – spender
đây là bản sao – bendewey
điều này quá mơ hồ và bạn có thể bắt đầu qua truy vấn google –