Pergunta

Alguém teve alguma sorte executando XHRs cruzados de um script de usuário no Google Chrome? Os pedidos vão para o servidor (eu posso vê -los nos logs), mas o readystatechanged evento nunca é demitido.

As permissões de extensão não parecem estar fazendo o truque. Nem Jsonp.

Foi útil?

Solução

As versões atuais do Chrome (13.0.781 ou mais tarde) agora suportam a maioria ou todos os GM_xmlhttpRequest()Doc funcionalidade - incluindo solicitações de domínio cruzado.
Ver Edição 18857: Suporte xmlHttPrequest em scripts de conteúdo.

Portanto, este script funciona perfeitamente bem agora no Chrome (e no Firefox, é claro):

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


(Instale esse script e navegue em qualquer página. O script escreverá os primeiros 80 caracteres da página inicial do Google no console.)

Outras dicas

A partir do Chrome 13, você pode fazer solicitações cruzadas de origem nos scripts de conteúdo se você incluísse a permissão para o site no manifesto.

Um script de usuário no Chrome é um script de conteúdo. Os scripts de conteúdo não podem fazer XHRs de origem cruzada. Se você deseja fazer XHRs de origem cruzada, isso deve ser feito nas páginas de extensão (plano de fundo, pop-up, opções).

Para mais informações:http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top