Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQuery]Jak rozróżnić xml i json
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
zend
Czy jest jakiś prosty sposób na rozróżnienie json'a i xml'a? Mam skrypt odpytujący serwer, jeżeli wynik odpowiedzi jest html'em wstawiam go do div'a, natomiast gdy odpowiedź jest json'em chciałbym wyciągnąć z niego dane i dodać nagłówki mówiące o sukcesie akcji

[js]var json = (eval('(' + data + ')'));[/js] - tak parsuje json'a - ale w przypadku gdy wrzuce w to html sypie błędami

Czy jest sens obsługiwać rządania dwoma formatami czy lepiej pozostać przy jednym?
nospor
To odpytujesz serwer (zakładam ze swoj skrypt) i nie wiesz co on zwroci?

Cytat
Czy jest sens obsługiwać rządania dwoma formatami czy lepiej pozostać przy jednym?
No lepiej zdecydować się na jeden i nie kombinować jak kon pod górkę
zend
Wiem co zwróci serwer - albo xml albo json smile.gif Jeśli formularz nie przejdzie walidacji po stronie serwera zwracany jest cały formularz, natomiast w przypadku zatwierdzenia danych chciałbym zwracać json smile.gif
nospor
Cytat
Jeśli formularz nie przejdzie walidacji po stronie serwera zwracany jest cały formularz, natomiast w przypadku zatwierdzenia danych chciałbym zwracać json
Bez sensu. Zdecyduj się na jeden format i się go trzymaj.
zend
Wygląda na to że faktycznie przedobrzyłem smile.gif Temat do zamknięcia
wookieb
TO ja mam inną propozycję.
Rozróżniąj nagłówki odpowiedzi http (nagłówek Conten-type) - odpowiednio
json - text/x-json
xml - text/xml
html - text/html

Jest sens rozrózniać takie rzeczy i to bardzo. Raz będziesz chciał wysłać html a raz json, bo np nie opłaca Ci się inwestować w szablony po stronie JS
zend
Wookieb jesteś wielki, działa dokładnie tak jak chciałem
[JAVASCRIPT] pobierz, plaintext
  1. function formToSubmit()
  2. {
  3. $('form').submit(function(){
  4. if($(this).parent().attr('id') == "popup")
  5. {
  6. var serializedData = $(this).serialize();
  7. serializedData = serializedData + '&format=html';
  8. var parent = $(this).parent();
  9.  
  10. $.ajax({
  11. type : "POST",
  12. url : $(this).attr('action'),
  13. data : serializedData,
  14. success : function(result){
  15. $(parent).html(result);
  16. formToSubmit();
  17. },
  18. complete: function(xhr, status) {
  19. alert(xhr.getResponseHeader("Content-Type"));
  20. },
  21. });
  22.  
  23. return false;
  24. }
  25. });
  26. }
[JAVASCRIPT] pobierz, plaintext
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.