Jak mohu načíst webcomponent v různých doménách?

0

Otázka

Můžete načíst webcomponents z jiných domén?

Dostávám cors chyba ve firefoxu/linux.

Přidal jsem to na nginx, ale stále nemůže načíst:

  add_header Access-Control-Allow-Origin *;

<html lang="en">
  <head>
      <meta charset="utf-8" />
      <script type="module" src="//briskreader.com/components/feed-list.js"></script>
  </head>
  <body>
    <feed-list topic="bitcoin"></feed-list>
  </body>
</html>

Tady je chyba:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://briskreader.com/components/feed-list.js. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Loading module from “http://briskreader.com/components/feed-list.js” was blocked because of a disallowed MIME type (“text/html”).
test.html
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://briskreader.com/components/feed-list.js. (Reason: CORS request did not succeed).

Heres záhlaví od briskreader.com:

$ curl -I 'https://briskreader.com/components/feed-list.js'
HTTP/2 200 
server: nginx/1.18.0 (Ubuntu)
date: Sun, 21 Nov 2021 06:30:51 GMT
content-type: application/javascript
content-length: 2187
expires: Sun, 21 Nov 2021 06:30:50 GMT
cache-control: no-cache
cache-control: no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0
access-control-allow-origin: *
accept-ranges: bytes
firefox nginx web-component
2021-11-20 05:37:14
1

Nejlepší odpověď

0

Webové komponenty nemá nic společného s CORS. Atribut type="module" na <script> tag způsobí, že CORS požadavek. Na rozdíl od klasické skripty, modul skripty vyžadují použití protokolu CORS pro cross-původu načítání.

Vedle této linie add_header Access-Control-Allow-Origin *; je zbytečné o původu domény. Musíte nastavit Access-Control-Allow-Origin záhlaví na briskreader.com domény. Pokud nemáte kontrolu briskreader.com, pak zvažte použití klasického scénáře. Stále můžete použít Webové složky s klasickým scénářem.

2021-11-21 06:06:13

Udělal jsem to nastavit na briskrsader a je to stále nefunguje.
chovy

@chovy Můžete sdílet záhlaví odpověď na žádost //briskreader.com/components/feed-list.js?
Harshal Patil

aktualizováno otázku,, jak můžete vidět, to má access-control-allow-origin: *
chovy

tak tady je ten problém. byl jsem pomocí http-server který používá protokol http a server přesměrované http -> https, který nebude pracovat pro protokol agnostic url, myslím, že. Divné.
chovy

Pokud změním src atribut modulu od // k https:// funguje to v pohodě.
chovy

V ideálním případě // měl by fungovat. Ale je to zvláštní. Jsem rád, že to fungovalo pro vás.
Harshal Patil

Jsem upvoted (z -1 volit stav). [v mém laik slova] // znamená: žádost s protokolem žadatele běží, takže stránka podává s HTTP požadavku HTTP, pak HTTPS server bude blokovat, protože je nejistá žádost. Udělat 2 minuty Google search a dostanete spoustu odpovědí.
Danny '365CSI' Engelman

Myslel jsem, že briskreader.com je také slouží na http a ne jen https.
Harshal Patil

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................