J'utilise Google App Engine (Python) avec jQuery pour les appels Ajax au serveur. J'ai une page où je veux charger une liste de chaînes dans Javascript d'un appel d'Ajax au serveur.Comment retourner et utiliser un tableau de chaînes à partir d'un appel jQuery ajax?
La méthode du serveur que je veux invoquer:
class BrowseObjects(webapp.RequestHandler):
def get(self):
ids_to_return = get_ids_to_return()
// TODO: How to return these ids to the invoking ajax call?
self.response.out.write(ids_to_return)
La page HTML où je veux être en mesure d'accéder aux ids retournés:
var strings_from_server = new Array();
$.ajax({
type: "GET",
url: "/get_ids.html",
success: function(responseText){
// TODO: How to read these IDS in here?
strings_from_server = responseText
},
error: function (xhr, ajaxOptions, thrownError){
alert(xhr.responseText);
}
});
Mon expérience avec l'Ajax est limited-- I Je les ai seulement utilisées pour stocker des données sur le serveur (commandes POST a-la) et je n'ai donc aucune idée de la façon de récupérer les données du serveur. Merci à l'avance pour tous aider
Edit: Ma réponse finale:
Je suis passé à un appel complet Ajax (pour éviter des demandes inter-domaines) et aussi pour gérer callbacks « erreur ». Ma méthode client de travail ressemble à:
$.ajax({
type: "GET",
dataType: "json",
url: "/get_ids.html",
success: function(reponseText){
strings_from_server = responseText
},
error: function (xhr, ajaxOptions, thrownError){
alert(xhr.responseText);
}
});
note Je spécifie le dataType en tant que 'json'.
Et ma dernière fonction du serveur, avec la réponse de Sahid, ressemble à:
class BrowseObjects(webapp.RequestHandler):
def get(self):
ids_to_return = get_ids_to_return()
# Note: I have to map all my objects as `str` objects
response_json = simplejson.dumps(map(str, ids_to_return))
self.response.out.write(response_json)
Merci à tous!
Découvrez fonction jQuerys getJSON. Il vous permet d'analyser automatiquement la réponse en tant que données JSON. http://api.jquery.com/jQuery.getJSON/ –
à quoi ressemble la réponse? – Reigel