Domanda

Qualcuno ha avuto fortuna l'esecuzione XHR origine croce da uno script utente in Google Chrome? Le richieste passano attraverso il server (posso vederli nei log), ma, l'evento readystatechanged è mai sparato.

permessi di prolunga non sembrano essere fare il trucco. Nessuno dei due è JSONP.

È stato utile?

Soluzione

Le attuali versioni di Chrome (13.0.781 o successivi) supportano ora la maggior parte o tutto il GM_xmlhttpRequest() Doc funzionalità -. comprese le richieste cross-domain
Vedere 18857 Problema: supporto cross-site XMLHttpRequest negli script di contenuti .

Questo script funziona perfettamente bene ora in Chrome (e Firefox, ovviamente):

// ==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)
                                );
                }
} );


(Installare lo script, quindi individuare qualsiasi SO pagina. Lo script scriverà i primi 80 caratteri del home page di Google alla console.)

Altri suggerimenti

A partire da Chrome 13, si può fare richieste di origine incrociati negli script contenuti se è stato incluso il permesso per il sito nel manifesto.

Uno script utente in Chrome è uno script contenuti. gli script contenuti non possono fare XHR tra origine. Se si desidera fare XHR tra origine, dovrebbe essere fatto nelle pagine di estensione (sfondo, popup, opzioni).

Per ulteriori informazioni: http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top