Bir jQuery $.getJSON()
isteğindeki ham JSON yanıtına nasıl ulaşabilirim?
Sadece ham yanıtı tarayıcımda alert()
iletişim kutusunda yazdırmak istiyorum?
Bir jQuery $.getJSON()
isteğindeki ham JSON yanıtına nasıl ulaşabilirim?
Sadece ham yanıtı tarayıcımda alert()
iletişim kutusunda yazdırmak istiyorum?
JSONP kullanıyorsanız, bu temelde imkansızdır.
Etki alanınıza normal bir istek gönderiyorsanız, getJSON
'u get
ile değiştirin.
JSONP kullanmıyorum. Önerinizi denedim ve sadece [object Object] 'görüntülendim. – Kev
@Kev: 'dataType: 'text' öğesini eklemeyi deneyin. – SLaks
"Farting hakkında" bir miktar sonra, bu işe yarıyor. Daha sonra dizeyi bir nesneye ayrıştırmak için fazladan bir adım değil, daha sonra '$ .dump()' veya 'JSON.stringify() 'diğer yoldan ekstra bir adımdır. – Kev
http://api.jquery.com/jQuery.getJSON/
Ben soyutlamaların çeşitli imzaları hatırlamak zorunda kalmamak için tam .ajax yöntemleri kullanmayı tercih eder.
dokümanlar bu getJSON eşdeğerdir söyleyin:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
alabilsem burada:
function callback(data) {
alert(data);
}
şiddetle (console.log Firefox ve Firebug kullanmanızı öneririz); bu tür şeyler için. Uyarılar bir süre sonra seni deli ediyor. diğer yanıtların dayanarak
, ben sorunuzu yanlış anlama olabilir
Düzenleme! Ham cevabı görmek için her zaman Fiddler'ı kullanabilirsiniz.
Yazdırmak istediğim telin karşısına çıkan ham json dizesi. Bir dizi değeri kontrol etmek için hızlı bir hacky debug şey yapabilirdim. Ama hepinize teşekkürler. – Kev
Firebug, o zaman gitmenin yolu. Sadece geri dönen tüm nesneyi görmek için geri arama işlevine (data) {console.log (data); – ScottE
'console.log()', verileri hala bir nesneye benziyor, aslında peşinde olduğum gibi değil. Ham JSON'u (kaşlı ayraçlar, köşeli ayraçlar, alan adları, siğiller ve hepsi) göremiyorum. Fiddler işe yarıyor ama bunu eninde sonunda 'gizli' bir metin kutusuna yerleştirmek istedim. – Kev
https://github.com/douglascrockford/JSON-js/blob/master/json2.js'da JSON.stringify()
özelliğini kullanarak bitti.
Bu, başka bir javascript dosyası yüklendiği için ideal değil, ancak amaca hizmet ediyor.
jQuery 1.5 sürümünden jqXHR nesnesi, geri çağrı yönteminin üçüncü bağımsız değişkeni olarak iletilir. JqXHR nesnesinde ham JSON dizesini içeren bir reponseText özelliği vardır.
function callback(data, status, jqXHR) {
alert(jqXHR.responseText);
// or console.log(jqXHR.responseText);
}
Evet, bu hatalarla uğraşırken çok kullanışlıdır: '.fail (işlev (jqxhr, textStatus, hata) { console.error (" Yanıt: "+ jqxhr.responseText); });' –
o ayrıştırıldı JSON ya da 'getJSON' yöntemi ayrıştırmak için çalıştı ama başarısız oldu tarayıcısı/sunucu tarafından üretilen hata olsun farklı bir dizi seçenek fiili yanıt almak için vardır.
Not: '.always' yöntemiyle parametreler başarısızlığa veya başarıya bağlı olarak değişir.
$.getJSON(getData.php, function(data,textStatus,jqXHR) {
console.log(jqXHR.responseText);
//As of 1.5 we have these methods:
}).always(
function(jqXHR, textStatus, errorThrown) { //on failure
console.log(jqXHR.responseText);
}).always(
function(data, textStatus, jqXHR) { //on success
console.log(jqXHR.responseText);
}).fail(
function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
//As of 1.8 we have this method also:
}).then(
function(data, textStatus, jqXHR) {
console.log(jqXHR.responseText);},
function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
});
daha bilgi ziyareti isterseniz:
http://api.jquery.com/jQuery.ajax/#jqXHR veya
http://api.jquery.com/category/deferred-object/
Çiğ JSON görmek için kundakçı gibi bir şey kullanmalıdır. Bir şeyi uyarmaktan çok daha kullanışlı. – JAL
@alex evet Biliyorum. Ancak bu, gizli bir metin kutusunun öncüsüdür, böylece belirli kullanıcılar onu gösterebilir ve yanıtı bir e-postaya kopyalayabilir/yapıştırabilir. Uzun Hikaye. – Kev