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