Greasemonkey: xmlHttpRequest.open больше не принимает путь без протокола и хоста

Созданный на 14 дек. 2017  ·  9Комментарии  ·  Источник: greasemonkey/greasemonkey

Я заметил в jesus2099 / konami-command # 372, что Firefox v57 + Greasemonkey v4 будет работать только с полным URL https?://host.tld/pathname и больше не работает только с /pathname .
Firefox v57 + другой движок GM не подвержен этой регрессии, поэтому я открываю заявку здесь.

Все 9 Комментарий

В моем обходном пути мне пришлось добавить self.location.protocol + "//" + self.location.host + перед моим URL-адресом.

Запросы из контекста сценария содержимого (в котором выполняются сценарии пользователя) должны использовать полные URL-адреса.

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities#Content_script_requests_happen_in_the_context_of_extension_not_content_page

Если вы не хотите использовать полные URL-адреса, вы можете использовать методы window.wrappedJSObject и экспортировать любые функции, которые необходимы для запуска (onreadystatechange и т. Д.), Используя exportFunction() . Я предлагаю просто использовать полные URL-адреса.

Большое спасибо за вашу помощь.
Хорошо, значит, вы имеете в виду, что это соответствует спецификациям системы WebExtensions, верно?
Я не знаю этого материала WebExtensions, но кажется, что это стандарт…?
Я не помню, чтобы читал что-либо об этом конкретном регрессе в GM v4 для сообщений в блогах
Уверен, что эта регрессия постоянна?

Уверен, что эта регрессия постоянна?

Может быть. Я действительно не знаю. Возможно, в следующей строке <strong i="7">@grant</strong> none не будет этих проблем, если будет создана надлежащая песочница. Но если требуются некоторые привилегированные API, эти шаги могут потребоваться. Мяч действительно за Мозиллой.

FTR мой сценарий - это сценарий <strong i="5">@grant</strong> none .
Я позволяю руководителям проекта закрывать или не закрывать этот тикет.
Я приспособлюсь.

Это не предназначено, поэтому не следует ожидать, что это будет постоянным. Мы могли бы полностью разрешить неабсолютные пути на основе документа как корня.

Обратите внимание, что правильный базовый URL: document.baseURI (относится к <base href="..."> )

Я могу подтвердить, jQuery AJAX не работает только с URL-адресом пути.
Firefox 57, последняя версия Greasemonkey.

$.ajax({
  url: '/some/path',
  success: () => {}
});

Мой AJAX работает со старым Firefox (до WebExtensions)

Вышеупомянутое исправление было упаковано в новую бета-версию:
https://addons.mozilla.org/firefox/downloads/file/830369/greasemonkey-4.2beta1-an+fx.xpi?src=devhub

Приветствуются тестирование и подтверждение!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги