Frage

Hat jemand etwas Glück von Quer Herkunft XHRs von einem Benutzer-Skript in Google Chrome hat? Die Anträge gehen durch an den Server (ich kann sie in den Protokollen sehen), aber wird das readystatechanged Ereignis nie ausgelöst.

Erweiterung Berechtigungen scheinen nicht, den Trick zu tun. Weder ist JSONP.

War es hilfreich?

Lösung

Aktuelle Versionen von Chrome (13.0.781 oder höher) unterstützen nun die meisten oder alle der GM_xmlhttpRequest() Doc Funktionalität -. einschließlich Cross-Domain-Anfragen
Siehe Ausgabe 18857: Unterstützung Cross-Site-XMLHttpRequest in Content-Skripte .

Also das Skript funktioniert völlig in Ordnung, jetzt auf Chrome (und Firefox, natürlich):

// ==UserScript==
// @name            _Cross domain (XSS) GM_xmlhttpRequest, Chrome too
// @include         http://stackoverflow.com/*
// @grant           GM_xmlhttpRequest
// ==/UserScript==

GM_xmlhttpRequest ( {
    method:     "GET",
    url:        "http://www.google.com/",
    onload:     function (response) {
                    console.log (   response.status,
                                    response.responseText.substring (0, 80)
                                );
                }
} );


(Installieren Sie das Skript, dann browse jede SO Seite. Das Skript wird die ersten 80 Zeichen der Google-Startseite auf die Konsole schreiben.)

Andere Tipps

Ab Chrome 13 können Sie in Content Scripts Quer Herkunft Anfragen tun, wenn Sie die Berechtigung auf die Website im Manifest enthalten.

Ein Benutzer Skript in Chrome ist ein Content-Skript. Content-Skripte können nicht Cross-Origin XHRs machen. Wenn Sie Cross-Origin XHRs tun wollen, sollte es in den Erweiterungsseite (Hintergrund, Pop-up, Optionen) durchgeführt werden.

Für weitere Informationen: http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html

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