Soru $ .getJSON ile $ .get arasındaki fark


Bu iki çağrıda gerçekten bir fark var mı? Eğer getJSON kullanırsanız, hala beyan etmek zorundasınız format=json URL'de ...

Ve sende aynısını yapabilirsin $.get()ve JSON nesnesini yineleyin.

Yoksa burada yol muyum?


25
2017-07-03 12:46


Menşei


URL'de bildirmeniz gereken şeylerin jQuery ile ilgisi yoktur. Ne de olsa tüm siteler için geçerli olur - kesinlikle benim için değil ;-) - NickFitz
Sadece getJSON kullanıyor olsanız bile, bir JSON sonucunu aradığınızı bildirmek zorunda olduğunuzu söylüyordum. Ve sen de $ .get () için url içinde ilan edeceksin. Sadece birinin ne olduğunu merak ediyor, diğeri de ... - peirix
Aslında sen Hangi buradan çıkmış. kullanırken getJSON () yöntem sen YAPMAYIN veri türünü açıkça geçirmeli, ancak almak() Yöntemi açıklayacaksın ZORUNDA . Yukarıdaki yorumu yehuda ile görün. Bütün hikayeyi anlatıyor ya da ziyaret ediyor http://api.jquery.com/jQuery.getJSON/ - kushalvm
Cevabı kabul ettiğini gördüm. Ama açıkçası, kimsenin bahsettiğim gibi basitçe bahsettiğim gerçeğine işaret etmedim. Belki şimdi bu konuda netsiniz. Senin için çok iyi! - kushalvm


Cevaplar:


Aşağıdaki iki snippet eşdeğerdir:

$.get("/some/url", {data: "value"}, function(json) { 
  // use json here
}, "json")

$.getJSON("/some/url", {data: "value"}, function(json) {
  // use json here
});

Bir istek için olduğunu söyleyerek JSON iki şey anlamına gelir:

  • jQuery bir gönderir Accept: application/json başlık
  • jQuery gelen yanıtı yorumlar, onu bir JavaScript nesnesine dönüştürür ve onu geri çağırma işlemine aktarır (böylece değerlendirmeyle veya başka bir dönüştürme mekanizmasıyla uğraşmak zorunda kalmazsınız).

Sunucu tarafı çerçeveleri (Rails gibi) bir dizi otomatik olarak algılar Accept Başlığı ve talebi uygun şekilde ele alın. Farklı bir çerçeve kullanıyorsanız veya kendi yuvarlamanız varsa, Accept biçimi algılamak için üstbilgi (parametreleri incelemek yerine).


44
2017-07-03 21:59



Accept üstbilgi çözümünün eklenmiş olmasının sebebinin, jQuery ile bu tür çerçeveler (örn. Rails) arasında sorunsuz bir şekilde iletişim kurmasını sağlayan çerçeveyi zarif bir şekilde ele alan çerçevelere hitap etmek olduğunu da belirtmeliyim. - Yehuda Katz


Belgelerin açık bir şekilde açıkladığını düşünüyorum!

http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype

Uzaktan yükleme sayfa bir HTTP GET isteği kullanarak.

http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback

JSON yükle veri bir HTTP GET isteği kullanarak.

Unutmayın, bunlar sadece .ajax yönteminin soyutlamalarıdır.


7
2017-07-03 12:50



Ama yine de JSON verilerini almak için $ .get'i kullanabilirsin, değil mi? Aradığınız sayfa bir JSON nesnesini döndürüyorsa? - peirix
Tabi, sanırım, 'veri' argümanını json olarak belirttiğiniz sürece. Sayfa jsonu döndürecekse, neden sadece getJSON yöntemini kullanmıyorsunuz? Yine, bunlar ajax çağrılarını basitleştirmek için sadece .ajax yönteminden soyutlamalar. Onlar sizin için daha kolay şeyler yapmak için oradalar, karmaşık değil! - ScottE
Veri argümanı olmadan $ .get kullandım ve gayet iyi çalışıyor. API doc, veri argümanının varsayılanının "akıllı bir tahmin" olduğunu ve dolayısıyla jQuery'nin kullanım durumumda doğru şekilde tahmin edildiğini söylüyor ;-) - Elisabeth


$ .GetJSOn ve $ .get arasındaki farklar parametrelerdir:

  1. $ .getJSON veri olarak düz nesneleri kabul ederken $ .get düz nesneleri veya dizeyi kabul eder.
  2. $ .get'de dataType parametresi var.

Yani, $ .get with dataType kullanarak: JSON tam olarak $ .getJSON ile aynı şekilde çalışır.


2
2018-01-03 08:59