Greasemonkey: xmlHttpRequest.open akzeptiert keinen Pfad mehr ohne Protokoll und Host

Erstellt am 14. Dez. 2017  ·  9Kommentare  ·  Quelle: greasemonkey/greasemonkey

Ich habe in jesus2099/konami-command#372 bemerkt, dass Firefox v57 + Greasemonkey v4 nur mit der vollständigen URL https?://host.tld/pathname und nicht mehr nur mit /pathname funktioniert.
Firefox v57 + eine andere GM-Engine ist von dieser Regression nicht betroffen, deshalb eröffne ich hier ein Ticket.

Alle 9 Kommentare

In meiner Arbeit herumführen , musste ich anfügen self.location.protocol + "//" + self.location.host + vor meiner URL.

Für das Ausführen von Anforderungen aus einem Inhaltsskriptkontext (in dem Benutzerskripts ausgeführt werden) müssen vollständige URLs verwendet werden.

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

Wenn Sie keine vollständigen URLs verwenden möchten, können Sie die Methoden von window.wrappedJSObject und alle zum Ausführen erforderlichen Funktionen (onreadystatechange usw.) mit exportFunction() exportieren. Mein Vorschlag ist, nur vollständige URLs zu verwenden.

Vielen Dank für Ihre Hilfe.
OK, Sie meinen also, dass es gemäß den Spezifikationen des WebExtensions-Systems ist, oder?
Ich kenne dieses WebExtensions-Zeug nicht, aber es scheint ein Standard zu sein ...?
Ich kann mich nicht erinnern, etwas über diese spezielle Regression im GM v4 für Autoren- Blog-Posts gelesen zu haben.
Es ist sicher, dass diese Regression dauerhaft ist?

Es ist sicher, dass diese Regression dauerhaft ist?

Vielleicht. Ich weiß es nicht wirklich. Vielleicht haben <strong i="7">@grant</strong> none diese Probleme nicht, wenn eine richtige Sandbox erstellt werden kann. Wenn jedoch einige privilegierte APIs erforderlich sind, können diese Schritte erforderlich sein. Der Ball liegt wirklich bei Mozilla.

FTR Mein Skript ist ein <strong i="5">@grant</strong> none Skript.
Ich lasse die Projektleiter dieses Ticket schließen oder nicht schließen.
Ich werde mich anpassen.

Dies ist nicht beabsichtigt, daher sollte nicht erwartet werden, dass es dauerhaft ist. Wir konnten nicht-absolute Pfade basierend auf dem Dokument als Root vollständig auflösen.

Bitte beachten Sie, dass die korrekte Basis-URL lautet: document.baseURI (bezogen auf <base href="..."> )

Ich kann bestätigen, jQuery AJAX funktioniert nicht nur mit Pfad-URL.
Firefox 57, neuestes Greasemonkey.

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

Mein AJAX funktioniert mit altem Firefox (vor WebExtensions)

Der obige Fix wurde in einer neuen Beta-Version verpackt:
https://addons.mozilla.org/firefox/downloads/file/830369/greasemonkey-4.2beta1-an+fx.xpi?src=devhub

Testen und Bestätigung wäre wünschenswert!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen