Jak korzystać z kontroli dostępu (Access-Control-Allow-Origin)? Czy to po prostu wchodzi między znacznikami Head html?

Czytałem o Access-Control-Allow-Origin ponieważ wydaje się skuteczne w zezwalaniu na żądania cross domeny, ponieważ mam dostęp do zewnętrznej strony. Moje pytanie brzmi: jak używać Access-Control-Allow-Origin, Aby zezwolić na żądania między domenami. I tried this (don ' t laugh) (by the way I want is for a single number, 1 or 0 to be returned)

<html>
<head>
Access-Control-Allow-Origin: *
</head>
<body>
1
</body>
</html>
Jestem blisko? Dzięki za pomoc. Jeśli istnieje łatwiejszy sposób na proste żądanie między domenami, daj mi znać.
Author: Shashank Agrawal, 2011-08-10

2 answers

To jest nagłówek HTTP. Można skonfigurować serwer WWW lub webapp, aby wysłać ten nagłówek idealnie. Być może w htaccess lub PHP.

Alternatywnie możesz użyć

<head>...<meta http-equiv="Access-Control-Allow-Origin" content="*">...</head>
Nie wiem, czy to zadziała. Nie wszystkie nagłówki HTTP można skonfigurować bezpośrednio w HTML.

To działa jako alternatywa dla wielu nagłówków HTTP, ale zobacz komentarz @ EricLaw poniżej. Ten konkretny nagłówek jest inny.

Zastrzeżenie

To odpowiedź jest ściśle o tym, jak ustawić nagłówki. Nie wiem nic o zezwalaniu na żądania cross domain.

Informacje o nagłówkach HTTP

Każde żądanie i odpowiedź mają nagłówki. Przeglądarka wysyła to do serwera www

GET /index.htm HTTP/1.1

Następnie nagłówki

Host: www.example.com
User-Agent: (Browser/OS name and version information)
.. Additional headers indicating supported compression types and content types and other info

Następnie serwer wysyła odpowiedź

Content-type: text/html
Content-length: (number of bytes in file (optional))
Date: (server clock)
Server: (Webserver name and version information)

Dodatkowe nagłówki można skonfigurować na przykład Cache-Control, wszystko zależy od Twojego języka (PHP, CGI, Java, htaccess) i serwera WWW (Apache, itp.).

 9
Author: George Bailey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:46:51

Istnieją 3 sposoby zezwalania na pochodzenie między domenami (z wyłączeniem jsonp):

1) Ustaw nagłówek na stronie bezpośrednio za pomocą języka szablonów, takiego jak PHP. Pamiętaj, że nie może być HTML przed nagłówkiem lub zawiedzie.

 <?php header("Access-Control-Allow-Origin: http://example.com"); ?>

2) zmodyfikuj plik konfiguracyjny serwera (apache.conf) i dodaj tę linię. Zauważ, że "*" reprezentuje allow all. Niektóre systemy mogą również potrzebować zestawu poświadczeń. Na ogół All Access jest Zagrożeniem bezpieczeństwa i należy go unikać:

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials true

3) do Zezwalaj na wiele domen na serwerach internetowych Apache Dodaj do pliku konfiguracyjnego

<IfModule mod_headers.c>
    SetEnvIf Origin "http(s)?://(www\.)?(example.org|example.com)$" AccessControlAllowOrigin=$0$1
    Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
    Header set Access-Control-Allow-Credentials true
</IfModule>

4) dla rozwoju używaj tylko hack przeglądarki i pozwalają nieograniczoną CORS za pomocą Chrome Allow-Control-Allow-Origin rozszerzenie

 16
Author: mbokil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-25 07:48:35