20 Haziran 2009 Cumartesi

0

AJAX ile POST Metodunu Kullanarak Veri Göndermek/Almak

Posted in , , , ,
AJAX ile GET metodunu kullanmak oldukça kolay. Herhangi bir kütüphaneden bağımsız olarak AJAX kullananların tamamının GET metodunun bildiğini ve kullandığını tahmin ediyorum. Ancak AJAX' ta POST metodu için aynı şey geçerli değil. Çoğu kimse AJAX' ta POST metodunun nasıl kullanıldığını bilmiyor. Bu yüzden bu yazıda POST metoduyla AJAX kullanımını işleyeceğim.

Önce bir XMLHTTPRequest nesnesi oluşturalım

var XHttp; //XMLHttpRequest nesnesi

if(navigator.appName == "Microsoft Internet Explorer")
{XHttp = new ActiveXObject("Microsoft.XMLHTTP");}
else{XHttp = new XMLHttpRequest();}


Bu aşamadan sonra göndereceğimiz verileri POST metoduna uygun hale getirmeliyiz. POST metodunda verilerimizi XHttp.send() komutunu kullanırken göndeririz. Bunun için normalde

XHttp.send(null);

olarak kullandığımız kodu

XHttp.send(gönderilecek veriler);

olarak değiştireceğiz. Burada gönderilecek veriler aynı GET metodundaki gibi alan1=deger1&alan2=deger2 formatında olmalıdır. Ayrıca verilerimizi gönderirken özel karakterlerde problem yaşamamak için encodeURIComponent fonksiyonunu da burada kullanmak gerekir. Örnek vermek gerekirse;

XHttp.send(encodeURIComponent("adi=ali&soyadi=kara&yasi=25"));

POST metodunu kullanmamız için her şey hazır sadece sunucuya yapacağımız istekte ufak bir değişiklik yapmamız gerekiyor.Bunun için şöyle bir komut kullanacağız.

XHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

Son kodları şöyle bir toplarlamak gerekirse;

XHttp.open('post', 'hedef.php');
XHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XHttp.send(encodeURIComponent("adi=ali&soyadi=kara&yasi=25"));

0 yorum: