2012-06-22 13 views
5

kod jQuery:Funkcja ajax ajax drukuje [obiekt obiektu] zamiast zwykłego tekstu. Czemu?

function ajaxsubmit(){ 
$.ajax({ 
    url: "/update", 
    type: "POST", 
    dataType: "html" 
}).success(function(data) { 
     $('#result').html(data); 
    }); 
} 

i moja funkcja Java:

public static Result ajaxupdate() { 
    String done = "very good"; 
    return ok("very good").as("text/plain"); 
} 

alert daje [object Object], zamiast zwykłego tekstu "very good". czemu?

+0

Otwórz go w chrome, umieść punkt przerwania w linii alertu, a myszka nad 'danymi' powie dokładnie, jak obiekt wygląda wewnętrznie. – asawyer

+0

Im jessery zgadywania jest konwertowanie json do literału obiektu. – hvgotcodes

+0

czy próbowałeś alert (data.d); – Rab

Odpowiedz

2

dodać dataType: "tekst" i zmienić kompletne() z sukcesem()

function ajaxsubmit(){ 
    $.ajax({ 
     url: "/update", 
     type: "POST", 
     dataType: "html" 
    }).success(function(data) { 
      $('#result').html(data); 
     }); 
    } 
+0

Dzięki Cristi, dostaję to teraz.! wspaniały! – doniyor

+0

Cristi, teraz dołączam element html jako dane odpowiedzi. jak mogę to zrobić, aby każda funkcja ajaxsubmit dołączała element html. teraz dołącza tylko jeden raz, ponieważ id elementu div staje się unikalny. zobacz moją edycję powyżej proszę. – doniyor

+1

spróbuj .append() http://api.jquery.com/append/ –

4

chcesz użyć:

alert(JSON.stringify(data)); 

więc JavaScript będzie wyglądać następująco:

function ajaxsubmit(){ 
$.ajax({ 
    url: "/update", 
    type: "POST", 
}).complete(function(data) { 
     alert(JSON.stringify(data)); 
    }); 
} 

Twój kod Java wygląda to jest owijanie swój ciąg do obiektu przed wysłaniem go do klient, JSON.stringify() pokaże strukturę zwracanego obiektu i stamtąd można ustalić, która właściwość zwracanego obiektu zawiera zmienną zwracaną (prawdopodobnie coś jak data.data lub data.return)

+0

wow. chłodny. dzięki, człowiek działa. – doniyor

+0

doniyor: Żaden problem człowiek :) – Waltzy

2

Dokumentacja jQuery jasno odpowiedzieć na Twoje pytanie. Od http://api.jquery.com/jQuery.ajax/

complete(jqXHR, textStatus) 
<...> 
two arguments: The jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object and a string 

Możesz dowiedzieć się więcej o jqXHR w dokumentacji. Jeśli chcesz użyć łańcucha odpowiedzi, rozważ użycie opcji .success. Być może będziesz musiał jawnie podać .contentType

+2

contentType jest dla tego, co wysyłasz na serwer, dataType jest za to, co dostajesz. –

+0

dobrze, bardzo dziękuję friendzis, wspaniała informacja, dowiedziałeś się jeszcze jednej rzeczy! – doniyor

Powiązane problemy