2011-01-12 7 views
0

Entschuldigung, wenn dies elementar ist. Ich bin in erster Linie ein Front-End-Designer/Entwickler.Parsing sichere Einträge XML-Datei mit jquery

Ich habe Webformular über einen Formulardienst namens Wufoo.

Wufoo generiert eine schöne XML (oder JSON) -Datei, die gegraben und geparst werden kann.

Ich versuche, die Einträge xml feed, die mit dem Formular verknüpft ist und greifen sie über jquery zu zeigen, wer eingegeben hat.

Ich verwende den folgenden Code (der mit einer lokalen XML-Datei funktioniert).

http://bostonwebsitemakeover.com/2/test.html

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
<script> 
$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "people.xml", 
     dataType: "xml", 
     success: xmlParser 
    }); 
}); 




function xmlParser(xml) { 

    $('#load').fadeOut(); 

    $(xml).find("Entry").each(function() { 

     $(".main").append('<div class="entry">' + $(this).find("Field1").text() + ' ' + $(this).find("Field2").text() + ' http://twitter.com/' + $(this).find("Field17").text() + '</div>'); 
     $(".entry").fadeIn(1000); 

    }); 



} 
</script> 

Meine XML-Datei enthält folgende Komponenten:

<?xml version="1.0"?> 
<Entries> 
    <Entry> 
     <EntryId>1</EntryId> 
     <Field1>Meaghan</Field1> 
     <Field2>Severson</Field2> 
     <Field17/> 
    </Entry> 
    <Entry> 
     <EntryId>2</EntryId> 
     <Field1>Michael</Field1> 
     <Field2>Flint</Field2> 
     <Field17>michaelflint</Field17> 
    </Entry> 
    <Entry> 
     <EntryId>3</EntryId> 
     <Field1>Niki</Field1> 
     <Field2>Brown</Field2> 
     <Field17>nikibrown</Field17> 
    </Entry> 
    <Entry> 
     <EntryId>4</EntryId> 
     <Field1>Niki</Field1> 
     <Field2>Brown</Field2> 
     <Field17>nikibrown</Field17> 
    </Entry> 
</Entries> 

Ich frage mich, wie ich das auf dem Wufoo gehostet mit der XML-Datei tun würde (die https)

Also ich denke, ich frage, wie authentifiziere ich den Feed über jquery? Oder muss ich dies über Json tun? Könnte jemand erklären, wie?

+0

Es scheint nichts mit Ihrem Code falsch zu sein ... Was ist Wufoo? Das scheint die Frage zu sein, nicht deine XML oder JQuery ... (die den Code als unwichtig erscheinen lassen würde). –

Antwort

0

jQuery nach einem Benutzername und Passwort ermöglicht geben in den Ajax-Aufruf zu:

$(document).ready(function() { 
$.ajax({ 
    type: "GET", 
    url: "people.xml", 
    dataType: "xml", 
    success: xmlParser, 
    username: "myUsername" 
    password: "myPassword" 
}); 
}); 

aber dies bringt Sie Benutzername und Passwort im Klartext in Ihrem js. Vielleicht möchten Sie darüber nachdenken, einen kleinen PHP-Proxy einzurichten, um den authentifizierten Anruf so zu machen, dass alle Ihre Anmeldeinformationen nur auf dem Server sind.

1

Das Problem ist die same-origin policy. Dies ist eine Regel, die von allen Browsern erzwungen wird, dass Sie XMLHTTPRequest (die Basis für AJAX) domänenübergreifend nicht verwenden können. Sie können keine Anforderungen an einen anderen Server oder an denselben Server stellen, wenn dieser einen anderen Port oder ein anderes Protokoll verwendet (z. B. http/https).

Die plausibelste Lösung besteht darin, ein Skript auf Ihrem Webserver einzurichten, das die XML-Datei für Ihre Anwendung bereitstellt. In PHP, zum Beispiel könnte es so einfach sein wie:

<?php 
header('Content-Type: application/xml'); 
echo file_get_contents('the wufoo url'); 
?> 

Sie dann die Datei mit AJAX nennen könnte und den Inhalt der Remote-Datei erhalten.

+0

Danke für Ihre Hilfe! – nikibrown