XHR Cross origine à partir d'un script utilisateur dans Google Chrome
-
20-09-2019 - |
Question
Quelqu'un at-il eu de chance d'effectuer origine croisées d'un script requêtes XHR utilisateur dans Google Chrome? Les requêtes passent par le serveur (je peux les voir dans les journaux), mais l'événement est readystatechanged
n'a jamais tiré.
autorisations d'extension ne semblent pas faire l'affaire. Ni est JSONP.
La solution
Les versions actuelles de Chrome (13.0.781 ou version ultérieure) prennent désormais en charge la plupart ou tous les GM_xmlhttpRequest()
Doc fonctionnalité -. y compris les demandes croisées de domaine
Voir Problème 18857: Soutenir XMLHttpRequest cross-site dans les scripts de contenu .
Ce script fonctionne parfaitement bien maintenant Chrome (et Firefox, bien sûr):
// ==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)
);
}
} );
(Installer ce script, puis parcourir une page SO. Le script va écrire les 80 premiers caractères de la page d'accueil de Google à la console.)
Autres conseils
de Chrome 13, vous pouvez faire des demandes d'origine croisées dans les scripts de contenu si vous avez inclus l'autorisation sur le site dans le manifeste.
Un script utilisateur dans Chrome est un script de contenu. scripts contenu ne peuvent pas faire les requêtes XHR croisée origine. Si vous souhaitez faire les requêtes XHR croisée origine, il doit être fait dans les pages d'extension (arrière-plan, pop-up, options).
Pour plus d'informations: http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html