Für einen Webservice, den ich entwickle, möchte ich, dass mein eingebetteter Code (auf der Client-Site) eine XML-Datei von meinem Serverskript, das sich in meiner Domäne befindet, holt.
Da es sich um eine domänenübergreifende Anfrage handelt, habe ich mir vorgenommen, jsonp zu verwenden, da dies der De-facto-Standard für solche Apis ist. Für meine Anwendung wäre es jedoch einfacher für mich, anstelle von json xml zu verwenden. Nun, ich könnte natürlich meine XML in JSON auf dem Server und dann wieder in XML in der Site des Kunden JavaScript konvertieren, aber das scheint unnötig umständlich. Was ich wirklich brauche, ist und xmlp Lösung, xml mit Padding.
Ich habe müde gegoogelt, konnte aber kein jquery-Plug-in finden, das das tut. Wer kennt eine einfache Lösung?
Der einzige Grund, warum json funktioniert, ist, dass das enthaltene Javascript auf Ihrer Seite im Fenster ohne x-Domain-Probleme laufen kann. Also muss es Javascript bleiben. Sie können jedoch das XML einfach minimieren, sicherstellen, dass es korrekt maskiert ist und es als Wert in einem JSON-Objekt senden.
%Vor%Oder etwas in dieser Richtung.
Sie könnten etwas wie Yahoo! Abfragesprache (YQL), um zu verhindern, dass Sie ein anderes Ausgabeformat für Ihre XML-Datei schreiben müssen.
Um beispielsweise den XML-Feed für diese Frage über JSONP-X zu erhalten, verwenden Sie eine YQL-Abfrage-URL wie:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%27http%3A%2F%2Fstackoverflow.com%2Ffeeds%2Fquestion%2F2671143%27%20and%20itemPath%3D%27feed.entry%27&callback=my_jsonpx_handler
Was gibt Ihnen ein Ergebnis wie folgt; effektiv das XML in einem JSON Callback verpackt:
my_jsonpx_handler({"query":…,"results":["<entry xmlns=\"http://www.w3.org/2005/Atom\">\n <id>http://stackoverflow.com/questions/2671143/is-there-an-existing-tool-for-jsonp-like-fetching-of-xml-in-jquery<\/id>\n <re:rank xmlns:re=\"http://purl.org/atompub/rank/1.0\" scheme=\"http://stackoverflow.com\">0<\/re:rank>…"]});
Ihre Widgets könnten dann die YQL-URL nach ihren Daten abfragen, die wiederum mit der XML-Datei auf Ihrem Server kommunizieren (mit Caching, Geschwindigkeit usw. als zusätzliche Goodies).
Ab jQuery 1.5 gibt es eine Hilfsmethode, es ist mein Leben für die Verwendung von jsonp zum Laden in XML gespeichert.
%Vor%