AJAX ile POST Metodunu Kullanarak Veri Göndermek/Almak
Posted in AJAX, JavaScript, Makale, PHP, Web Programlama
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
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
olarak kullandığımız kodu
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;
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.
Son kodları şöyle bir toplarlamak gerekirse;
Ö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();}
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"));
XHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XHttp.send(encodeURIComponent("adi=ali&soyadi=kara&yasi=25"));
0 yorum: