Greasemonkey: xmlHttpRequest.open tidak lagi menerima jalur tanpa protokol dan host

Dibuat pada 14 Des 2017  ·  9Komentar  ·  Sumber: greasemonkey/greasemonkey

Saya telah memperhatikan di jesus2099/konami-command#372 bahwa Firefox v57 + Greasemonkey v4 hanya akan berfungsi dengan URL lengkap https?://host.tld/pathname dan tidak lagi berfungsi hanya dengan /pathname .
Firefox v57 + mesin GM lain tidak terpengaruh oleh regresi ini, inilah mengapa saya membuka tiket di sini.

Semua 9 komentar

Dalam work-around saya, saya harus menambahkan self.location.protocol + "//" + self.location.host + di depan URL saya.

Menjalankan permintaan dari konteks skrip konten (skrip pengguna yang dijalankan) harus menggunakan url lengkap.

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

Jika Anda tidak ingin menggunakan url lengkap maka Anda dapat menggunakan metode pada window.wrappedJSObject dan mengekspor fungsi apa pun yang diperlukan untuk dijalankan (onreadystatechange, dll) menggunakan exportFunction() . Saran saya hanya menggunakan url lengkap.

Terima kasih banyak atas bantuan Anda.
Oke, jadi maksud Anda itu sesuai dengan spesifikasi sistem WebExtensions, bukan?
Saya tidak tahu hal-hal WebExtensions ini, tetapi tampaknya menjadi standar…?
Saya tidak ingat membaca apa pun tentang regresi khusus ini di GM v4 untuk posting blog
Yakin regresi ini permanen?

Yakin regresi ini permanen?

Mungkin. Aku tidak tahu. Mungkin pada akhirnya <strong i="7">@grant</strong> none tidak akan mengalami masalah ini, jika kotak pasir yang tepat dapat dibuat. Tetapi jika beberapa API istimewa diperlukan maka langkah-langkah ini mungkin diperlukan. Bola benar-benar ada di lapangan Mozilla.

FTR skrip saya adalah skrip <strong i="5">@grant</strong> none .
Saya membiarkan para pemimpin proyek menutup atau tidak menutup tiket ini.
Saya akan beradaptasi.

Ini tidak dimaksudkan, jadi seharusnya tidak diharapkan menjadi permanen. Kami benar-benar dapat menyelesaikan jalur non-absolut berdasarkan dokumen sebagai root.

Harap dicatat bahwa url dasar yang benar adalah: document.baseURI (terkait dengan <base href="..."> )

Saya dapat mengonfirmasi, jQuery AJAX tidak berfungsi hanya dengan URL jalur.
Firefox 57, Greasemonkey terbaru.

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

AJAX saya berfungsi dengan Firefox lama (pre-WebExtensions)

Perbaikan di atas telah dikemas dalam versi beta baru:
https://addons.mozilla.org/firefox/downloads/file/830369/greasemonkey-4.2beta1-an+fx.xpi?src=devhub

Pengujian dan konfirmasi akan dihargai!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat