2010-11-03 4 views
3

jQuery:Appels JQuery AJAX - comment capturer la réponse JSON?

$(document).ready(function(){ 
$('#QuoteSearch').submit(function(){ 
    alert("in jquery"); 
    $.ajax({ 
     url: "ajaxJQuery", 
     type: "POST", 
     data: {username: $("#username").val(), password: $("#password").val()}, 
     dataType: "json", 
     error: function(){ 
      alert('Error'); 
     }, 
     success: function(data){ 
     alert('SUCCESS'); 
     alert(data); 
     } 
    }); 
    return false; 
}); 
}); 

<form> Code:

<form id="Quote Search"> 
    <textfield name="username" id="username" label="User Name" /> 
    <textfield name="password" id="password" label="Password" /> 
    <submit/> 
</form> 
<div id="coupon"> 
    Name = <property value="name" /> and Code = <property value="code" /> 
</div> 

classe Action:

private String username; 
private String password; 
private String name = "Sheela"; 
private String code = "qwert"; 

public String execute() throws Exception { 
    System.out.println("inside execute"); 
    name = username; 
    code = password; 
    return SUCCESS; 
} 

Question: Comment puis-je accéder à la JSON retourné par la classe d'action? J'utilise struts2-json-plugin, qui convertit automatiquement la classe Action en JSON. Je veux être en mesure de mettre à jour la balise div basée sur la réponse JSON.

Voici ce que je vois dans la console:

DEBUG (org.apache.struts2.json.JSONUtil) [JSON] 
{"code":"HELLO","name":"ABCD","password":"HELLO","username":"ABCD"} 

Mais je ne suis pas sûr de savoir comment capturer ce dans la JSP. S'il vous plaît aider. gh

Répondre

4

La réponse JSON du serveur doit figurer dans le paramètre data de votre gestionnaire de succès. Avez-vous regardé ce que cela contient?

+0

Merci pour la réponse. Je n'ai pas réalisé que je pouvais accéder à l'objet json comme "data.name" ... J'ai essayé de parsJSON (données), mais les données étaient déjà JSON et ont abouti à une erreur. Je suis bon maintenant! –