XHR с перекрестным исходным кодом из пользовательского скрипта в Google Chrome
-
20-09-2019 - |
Вопрос
Кому-нибудь удалось выполнить XHRS cross origin из пользовательского скрипта в Google Chrome?Запросы передаются на сервер (я вижу их в журналах), но, readystatechanged
событие никогда не запускается.
Разрешения на расширение, похоже, не помогают.Как и JSONP.
Решение
Текущие версии Chrome (13.0.781 или более поздней версии) теперь поддерживают большинство или все GM_xmlhttpRequest()
Док функциональность -- включая междоменные запросы.
Видишь Выпуск 18857:Поддержка межсайтового XMLHttpRequest в сценариях контента.
Таким образом, этот скрипт теперь отлично работает в Chrome (и Firefox, конечно).:
// ==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)
);
}
} );
(Установите этот скрипт, затем просмотрите любую страницу SO.Скрипт запишет первые 80 символов домашней страницы Google в консоль.)
Другие советы
Начиная с Chrome 13, вы можете выполнять перекрестные исходные запросы в сценариях содержимого, если вы включили разрешение на веб-сайт в манифест.
Пользовательский скрипт в Chrome - это скрипт содержимого.Скрипты содержимого не могут создавать XHRS из разных источников.Если вы хотите использовать XHRS из разных источников, это следует сделать на страницах расширений (фон, всплывающее окно, параметры).
Для получения дополнительной информации:http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html