REFERANS: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
POST yöntemi
POST yöntemi istek gönderilirken kullanılsın diye bazı değişiklikler yapacağız ...
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
Bazı http başlıkları herhangi bir POST isteğiyle birlikte ayarlanmalıdır. Bu yüzden onları bu satırlara yerleştirdik ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Yukarıdaki satırlarla temel olarak veri gönderiminin bir form gönderimi biçiminde olduğunu söylüyoruz. Ayrıca gönderdiğimiz parametrelerin uzunluğunu da veriyoruz.
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
'Hazır durum' değiştirme olayı için bir işleyici belirledik. Bu, GET yöntemi için kullandığımız aynı işleyicidir. Http.responseText'i burada kullanabilirsiniz - innerHTML (AHAH) kullanarak bir div içine ekleyin, değerlendirin (JSON) veya başka herhangi bir şey.
http.send(params);
Son olarak istek ile birlikte parametreleri gönderiyoruz. Verilen url ancak bu satır çağrıldıktan sonra yüklenir. GET yönteminde, parametre boş bir değer olacaktır. Ancak POST yönteminde, gönderilecek veriler, gönderme işlevinin bağımsız değişkeni olarak gönderilecektir. Params değişkeni ikinci satırda lorem=ipsum&name=binny
- bu nedenle sırasıyla 'ipsum' ve 'binny' değerleriyle iki parametre gönderiyoruz - 'lorem' ve 'name' olarak bildirildi.