2011-03-20 7 views
0

Alors j'essayais d'utiliser Ajax pour analyser xml mais je ne travaillais pas, alors j'ai utilisé la librairie jquery qui semble beaucoup plus simple à utiliser. J'essaie de faire un client pour un service de repos. Le service crache XML et le client doit l'analyser et l'afficher dans une table. Je ne sais pas ce que je fais mal la fonction ne semble pas fonctionner à l'extérieur. J'apprécierais si je pouvais obtenir un peu de conseils.Analyse syntaxique jquery

est ce que j'appelle jquery

scénario

src = le type "http://code.jquery.com/jquery-1.5.1.js" = "text/javascript"

c'est le Code

var HTMLSurveyNames; 
function getSurveyNames(){ 
    alert("hery"); 
    $(document).ready(function(){ 
    $.ajax({ 
     type: "GET", 
     url: "http://survey-creator.appspot.com/rest/surveymakerpro/allsurveys", 
     dataType: "xml", 
     success: function(xml) { 
     HTMLSurveyNames = "<table border='1'><tr>Survey Names<th></th></tr>"; 

     $(xml).find('SurveyList').each(function(){ 

      var surveyName = $(this).find('surveys').text(); 
      HTMLSurveyNames += "<tr><td>"+surveyName+"</td></tr>"; 

     }); 

     document.getElementById('displayNames').innerHTML = HTMLSurveyNames; 
    }); 
    } 
    }); 
}); 
} 

c'est là que je voudrais que le tableau apparaisse

div id="displayNames" 

ce qui est l'appel à la fonction

input name="GetSurveys" 
    style="width: 103px" 
    type="button" value="View all surveys" 
    onClick=getSurveyNames(); 

Répondre

0

En raison de restrictions same origin policy vous ne pouvez pas envoyer des requêtes AJAX à des domaines éloignés, donc cela ne peut pas fonctionner à moins que la page contenant ce javascript est hébergé sur http://survey-creator.appspot.com. Je soupçonne que vous essayez d'aller chercher un document XML qui est hébergé sur un domaine différent, ce qui est impossible.

Si vous voulez faire, vous devrez peut-être utiliser un script côté serveur sur votre domaine qui fera l'appel à distance pour récupérer le XML, puis retourner ce XML afin que votre appel AJAX appelle ce script serveur:

$.ajax({ 
    type: "GET", 
    url: "/myscript", 
    ... 
}); 
0

Il semble que (selon l'extrait de code) vous ayez deux cas où l'ordre des lignes }); et } a été inversé.

Avez-vous sorti des choses lorsque vous avez posté? Si non, voyez comment, lorsqu'ils sont correctement formulés, ces problèmes deviennent clairs.