Jak uzyskać nieprzetworzoną odpowiedź JSON z żądania jQuery $.getJSON()
?
Po prostu chcę wydrukować nieprzetworzoną odpowiedź w dialogu alert()
w przeglądarce?
Jak uzyskać nieprzetworzoną odpowiedź JSON z żądania jQuery $.getJSON()
?
Po prostu chcę wydrukować nieprzetworzoną odpowiedź w dialogu alert()
w przeglądarce?
Jeśli używasz JSONP, jest to zasadniczo niemożliwe.
Jeśli wysyłasz normalne żądanie do swojej domeny, zamień getJSON
na get
.
Nie używam JSONP. Wypróbowałem Twoją sugestię i po prostu wyświetlam komunikat "[Object Object]". – Kev
@Kev: Spróbuj dodać 'dataType: 'text''. – SLaks
Po ilości "farting about", to działa. Oznacza to dodatkowy krok, aby następnie przeanalizować ciąg znaków do obiektu, a następnie '$ .dump()' lub 'JSON.stringify() 'jest dodatkowym krokiem w drugą stronę. – Kev
http://api.jquery.com/jQuery.getJSON/
wolę używać pełnych metody .ajax więc nie trzeba pamiętać różne podpisy abstrakcji.
Docs powiedzieć, jest to równoznaczne z getJSON:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
gdzie można mieć:
function callback(data) {
alert(data);
}
Zdecydowanie zalecamy korzystanie z przeglądarki Firefox i Firebug console.log(); do tego rodzaju rzeczy. Alarmy doprowadzają cię do szału po pewnym czasie.
Edit
podstawie innych odpowiedzi, mogę być nieporozumienia Twoje pytanie! Zawsze możesz użyć Fiddlera, aby zobaczyć surową odpowiedź.
To surowy ciąg jsonów, który natrafił na przewód, który chcę wydrukować. To było tak, że mogłem zrobić szybkie, hackowate narzędzie do debugowania, aby sprawdzić wartość tablicy. Ale dzięki wszystkim. – Kev
Firebug to sposób, aby przejść. Wystarczy przejść do funkcji callback (dane) {console.log (dane);}, aby zobaczyć cały obiekt zwrócony. – ScottE
'console.log()' nadal zrzuca dane tak, jakby to był obiekt, a nie to, czego szukam. Nie widzę surowego JSON (nawiasy klamrowe, nawiasy kwadratowe, nazwy pól, brodawki i inne). Skrzypek działa, ale chciałem go ostatecznie osadzić w "tajnym" polu tekstowym. – Kev
Skończyło się na użyciu funkcji JSON.stringify()
w https://github.com/douglascrockford/JSON-js/blob/master/json2.js.
Nie jest idealny, ponieważ ładuje się inny plik javascript, ale służy on mojemu celowi.
Od wersji jQuery 1.5 obiekt jqXHR jest przekazywany jako trzeci argument metody wywołania zwrotnego. Obiekt jqXHR ma właściwość reponseText, która zawiera nieprzetworzony ciąg JSON.
function callback(data, status, jqXHR) {
alert(jqXHR.responseText);
// or console.log(jqXHR.responseText);
}
Tak, jest to bardzo przydatne w przypadku błędów: '.fail (funkcja (jqxhr, tekstStatus, błąd) { console.error (" Odpowiedź była: "+ jqxhr.responseText); });'); –
Istnieje wiele różnych opcji, aby uzyskać rzeczywistą odpowiedź czy to będzie JSON, który był analizowany lub błąd generowany przez przeglądarkę/serwer, że „getJSON” metoda próbował analizować, ale bezskutecznie.
Uwaga: w metodzie ".always" parametry zmieniają się w zależności od awarii lub sukcesu.
$.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);
});
Jeśli chcesz uzyskać więcej informacji na stronie:
http://api.jquery.com/jQuery.ajax/#jqXHR lub
http://api.jquery.com/category/deferred-object/
Należy użyć czegoś podobnego Firebug zobaczyć surowego JSON. Jest to o wiele bardziej przydatne niż ostrzeganie. – JAL
@alex tak wiem. Jest to jednak prekursor ukrytego pola tekstowego, więc niektórzy użytkownicy mogą je odkryć i skopiować/wkleić odpowiedź w wiadomości e-mail. Długa historia. – Kev