Ajax: บันทึก - เมธอด GET และ POST

Topic: 
 

จากคราวก่อนตัวอย่างเป็นการใช้งานฟังก์ชั่น 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 ได้ด้วย

เอามาจาก devx - Use the XMLHttpRequest Object to Post Data

 

Syndicate

Subscribe to Syndicate

Who's online

There are currently 0 users online.