Bilmek istediğin her şeye ulaş

Ajax form gönderme işlemlerinde script içerisindeki type bölümünde, ne zaman post, ne zaman get kullanılır?

mesela aşağıda, mvc de usercontrol sayfası içerisinden link ile tetiklenen ajax kodunda type : get tir. neden get? $(".Option").click(function () { var url = $(this).attr("name"); $.ajax({ type: 'get', url: url, dataType: 'html', success: function (data) { $("#CategoryForm").html(data); }, error: function (data) { } }); }); Düzenle
Eğer Ajax Request yaparken amacınız veri tabanından bir bilgi almak ise;

1. Veri alırken veri tabanına hangi veriyi istediğinize dair bir parametre göndermeniz gerekiyor ise: POST kullanın. Örneğin; bir kullanıcının yanıtlarını isterken kullanıcının id'sini parametre olarak göndermeniz gerekir.

 var url = " /getAnswersOfUser" ; 
 
 $.ajax({
 type: 'POST', 
 url: url, 
 data: { id: 24 }, 
 dataType: 'html', 
 success: function (data) { 
 //Handle response data here 
 }, 
 error: function (data) { }
 }) ; 

2. Veri alırken bir parametre göndermenize gerek yok ise: GET kullanın. Örneğin; son kayıt olan üyenin ismini alırken parametre göndermeden GET kullanabilirsiniz. Aynı zamanda GET ile parametre de gönderebilirsiniz ancak bu parametreyi QueryString içinde gönderebilirsiniz. Mesela; son kayıt olan 10 (veya 20) üyenin bilgilerini GET ile alırken QueryString ile count parametresini göndererek, kaç kişi almak istediğinizi gönderebilirsiniz.

var url = "/getRegisteredUsers?count=20"; 
$.ajax({
 type: 'GET', 
 url: url, 
 dataType: 'html', 
 success: function (data) { 
 //Handle response data here 
 }, 
 error: function (data) { }
 }) ; 


Ayrıca, QueryString parametresi olarak özellikle belirtmenize gerek kalmadan da sadece "data" kısmına parametrenizi yazarak ve GET yaparak işlemi gerçekleştirebilirsiniz, kendisi otomatik olarak parametreyi QueryString ile gönderecektir:

var url = " /getRegisteredUsers" ; 
 
 $.ajax({
 type: 'GET', 
 url: url, 
 data: { count: 20 }, //Bu querystring olarak gönderilir. 
 dataType: 'html', 
 success: function (data) { 
 //Handle response data here 
 }, 
 error: function (data) { }
 }) ; 


Aynı zamanda Turan Karatuğ (@Exodrum) 'un ve Victor Tomaili (@victortomaili) 'nin verdiği bilgiler de doğrudur.
  • Paylaş
2

Unluckypod, ayrıntılı ve açık anlatım için teşekkürler

Hakan Köse, Rica ederim :)

Get ile gönderilen veriler tarayıcının adres çubuğunda gösterilir. Post olması durumunda ise Http Request Header içerisinde kodlanmış olarak gider. Yani kullanıcı bu verileri adres satırında göremez. Get ile gönderilecek veride karakter sınırlaması vardır. Post için böyle bir sınır yoktur.
  • Paylaş
3

Unluckypod, ne zaman get ne zaman post yazılır type olarak. çünkü bi yerde post yerine get yazılmadığı için hata mesajı vermişti.

Victor Tomaili, Senin dediğin querystring ile post arasındaki fark. İkiside post yapar. Querystring de veri gözükür diğerinde gözükmez.

Victor Tomaili, Tamam bende yanlış biliyormuşum :) düzeltelim hemen

Verileri kaydetmek için vs. veri gönderirken post, veri çekmek için liste vs. Get kullanılıyor.

Get işlemi önce veri post eder; mesela id=5 diye. Get işleminde de geriye bu id'ye ait olan veri getirilir.

Demiştim, Tekrar araştırınca eksikler ve yanlışlar buldum :)

GET
Url lin bir parçasıdır.
Kolayca hacklenebilir.
Sadece ASCII karakter alabilir.
Güvenliği düşüktür.
Hassas veriler için uygun değildir.
Max. Uzunluğu
7607 karakter.


POST
Http-Header'ın parçasıdır.
Hacklenmesi kolay değildir.
Binary data dahil karakter için kısıtlama yoktur.
Daha güvenlidir.
Hassas veriler için uygundur.
8 MB'a kadar veri alabilir.

Get işlemi url'nin bir parçası olduğundan cache'lenebilir.
Post işlemi url'nin bir parçası olmadığından cache'lenemez.

Daha detaylı karşılaştırma için:
diffen.com/difference/get_%28http%29_vs_...
  • Paylaş
1

Unluckypod, ayrıntılı açıklama ve araştırma için teşekkürler

İşte bir anneanne'ni mi çok seviyorsun yoksa babaanne'ni mi sorusu daha. Ama bu seferki cevap tamamen çıkar'a dayalı. Örneğin; En sevdiğim tatlıyı yapınca anneannemi ve en sevdiğim çorbayı yapınca babaannemi demek gibi birşey. ( Çok uzatmadan :) ) bence kısaca cevap şöyle olabilir: Veri çağırıyorsan GET, Veri kaydediyor ya da güncelliyorsan POST metodunu kullanmak en makul olanıdır -bence-
  • Paylaş
1

Unluckypod, teşekürler

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

462 Görüntülenme6 Takipçi4 Yanıt