Ajax: บันทึก - เมธอด GET และ POST
Submitted by wd on Wed, 2007-03-07 18:40
จากคราวก่อนตัวอย่างเป็นการใช้งานฟังก์ชั่น open ใน Ajax แบบใช้เมธอด GET
ปัญหาของเมธอด GET คือการส่งผ่านค่าผ่าน url ทำให้รหัสอักขระเปลี่ยน
อีกอย่างนึงคือส่งผ่านข้อความยาวมาก ๆ ไม่ได้ เลยต้องใช้เมธอด POST แทน
รูปแบบเก่าของเมธอด GET คือ
...
function d_say(arg1, arg2) {
/* arg1 IN FORM OF "?var1=123&var2=456" */
if (req.readyState == 4 || req.readyState == 0) {
url = arg1;
htmlid = arg2;
req.onreadystatechange = d_handle;
req.open("GET", url, true);
req.send(null);
}
}
function d_handle() {
if (req.readyState == 4) {
document.getElementById(htmlid).innerHTML = req.responseText;
}
}
...ต้องเปลี่ยนมาเป็นเมธอด POST มีรูปแบบเป็น
...
function d_post(arg1, arg2) {
/* arg1 IN FORM "var1=123&var2=456" ***REMOVE FRONT "?" *** */
url = arg1;
htmlid = arg2;
req.open("POST", "?", false);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(url);
document.getElementById(htmlid).innerHTML = req.responseText;
}
...การส่งแบบนี้ ถ้าเซิร์ฟเวอร์เป็นไพธอน ไพธอนสามารถรับเข้ามาใน cgi.FieldStorage ได้ด้วย







Recent comments