Frage

Ich Stelle zusammen ein kleines tool, dass einige business Menschen ausführen können, auf Ihrem lokalen Dateisysteme, da wir nicht möchten das einrichten eines host für es.

Im Grunde, es ist einfach nur HTML + Javascript (mit jQuery) zu ziehen einige Berichte, die Verwendung von REST von einem 3rd-party.

Das problem ist, FF3 und IE nicht zulassen, dass der ajax-Aufruf, den ich bekommen:

Access to restricted URI denied" code: "1012

Ganz offensichtlich Ihr ein XSS-Problem...wie kann ich es umgehen?Die zurückgegebenen Daten im XML-format.

Ich habe versucht, es so machen:

$.get(productUrl, function (data){
    alert (data);
});

BEARBEITEN:Um klar zu sein...ich bin nicht die Einrichtung einer internen host für dieses(Viel zu viel Bürokratie), und wir NICHT host diese extern durch die Daten abgerufen werden.

EDIT #2:Ein kleiner Test zeigt dass ich ein IFRAME-Element, um eine Anfrage zu.Weiß jemand, ob es irgendwelche Nachteile der Verwendung einer versteckten IFRAME?

War es hilfreich?

Lösung

In einer ähnlichen Situation war meine Lösung Webmarkierung zu verwenden, das ein spezieller HTML-Kommentar, dass der IE erkennt. Sie stellt die Seite in einer anderen Sicherheitszone.

Referenz: MSDN

Andere Tipps

Wenn Sie Python installiert ist, ein Webserver-Dateien zu dienen als

so einfach sein
python -c “import SimpleHTTPServer;SimpleHTTPServer.test()”

Edit:. Originalplakat kann diesen Ansatz nicht verwenden, aber im Allgemeinen denke ich, das ist der Weg dieses besondere Problem für zukünftige Benutzer mit diesem Problem zu lösen

Kontrollieren Sie die server die Bereitstellung der Daten?Wenn ja, können Sie einen Rückruf an.Die Grundidee ist, Sie haben eine Funktion in der script, die verarbeitet eingehende Daten (in deinem Fall eine XML-Zeichenfolge).Dann antwortet der server auf die Anfrage mit einem JavaScript-snippet, das von der callback-Funktion mit dem string als argument.Und anstelle von AJAX, fügen Sie ein neues Skript-tag auf der Seite.Dies ist die Grundlage für JSONP.Es sieht so etwas wie dieses.

lokale Seite.

<script>
    function callback(str) {
        alert(str);
    }
    function makeRequest(param) {
        var s = document.createElement('script');
        s.src = 'http://serveranywhere/script.bla?' + params;
        document.getElementsByTagName[0].appendChild(s);
    }
</script>

remote server zurückgegeben

callback('<xml><that><does><something></something></does></that></xml>');

nun, wenn das Skript auf der Seite Hinzugefügt wird, wird die callback-Funktion wird ausgeführt, Sie die Zeichenfolge, die Sie bieten.Und jQuery-Aufruf tun all dies für Sie mit JSONP im $.ajax-Aufruf.Hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top