Jak załadować składnika między domenami?

0

Pytanie

Czy można nie pobierać składniki sieci web z innych domen?

Pojawia się błąd: cors w firefox/linux.

Dodałem to w nginx, ale wciąż nie mogę go pobrać:

  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>

Oto błąd:

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).

Oto tytuł z 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

Najlepsza odpowiedź

0

Składniki sieci web nie mają nic wspólnego z CORS. Atrybut type="module" na <script> tag powoduje żądanie CORS. W przeciwieństwie do klasycznych scenariuszy, skryptów modułów wymagają użycia protokołu CORS do pobierania z różnych źródeł.

Następny wiersz add_header Access-Control-Allow-Origin *; bezużyteczne w domenie pochodzenia. Musisz zainstalować Access-Control-Allow-Origin nagłówek na briskreader.com domena. Jeśli nie masz kontroli briskreader.com, następnie należy rozważyć użycie klasycznego scenariusza. Nadal można korzystać z sieci web składniki z klasycznym scenariuszem.

2021-11-21 06:06:13

Zainstalowałem go na briskrsader, i nadal nie działa.
chovy

@chovy czy Możesz podzielić się tytułem odpowiedzi na zapytanie z //briskreader.com/components/feed-list.js?
Harshal Patil

zaktualizowany pytanie, jak widać, jest w nim access-control-allow-origin: *
chovy

tak oto w czym problem. użyłem http-server który używa protokołu http, a mój serwer skierował http -> https, który, myślę, że nie będzie pracować, aby nie zależnych od protokołu adresów URL. Dziwny.
chovy

Jeśli zmienię src atrybut modułu z // Dla https:// to działa świetnie.
chovy

Idealnie // powinno zadziałać. Ale to dziwne. Cieszę się, że to działa dla ciebie.
Harshal Patil

Ja głosowałem (ze statusem -1 głos). [w moim nieprofesjonalny słów] // oznacza: złóż zapytanie z protokołem, który wykonuje wnioskującego, więc strona, drobne naprawy HTTP sprawia, że żądania HTTP, a następnie serwer HTTP, S zablokuje go, ponieważ jest to niebezpieczne żądanie. Dodać 2-minutowy szukaj w Google, a otrzymasz wiele odpowiedzi.
Danny '365CSI' Engelman

Myślałem, że briskreader.com służy również do http i nie tylko https.
Harshal Patil

W innych językach

Ta strona jest w innych językach

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