Как использовать Access-Control-Allow-Origin? Это просто идет между тегами html head?

Я читал о Access-Control-Allow-Origin потому что это кажется эффективным при разрешении междоменных запросов, так как у меня есть доступ к внешнему сайту. Мой вопрос в том, как я использую Access-Control-Allow-Origin разрешить междоменные запросы. Я пробовал это (не смейтесь) (кстати, все, что я хочу, это вернуть одно число, 1 или 0)

<html>
<head>
Access-Control-Allow-Origin: *
</head>
<body>
1
</body>
</html>

- Я угадал? Спасибо за помощь. Если есть более простой способ сделать простой междоменный запрос, дайте мне знать.

2 ответов


Это заголовок HTTP. Вы бы настроили свой веб-сервер или webapp для отправки этого заголовка в идеале. Возможно в htaccess или PHP.

в качестве альтернативы вы можете использовать

<head>...<meta http-equiv="Access-Control-Allow-Origin" content="*">...</head>

Я не знаю, будет ли это работать. Не все заголовки HTTP можно настроить непосредственно в HTML.

это работает как альтернатива многим http-заголовкам, но см. @EricLawкомментарий ниже. Этот конкретный заголовок отличающийся.

предостережение

этот ответ строго о том, как установить заголовки. Я ничего не знаю о разрешении междоменных запросов.

о заголовках HTTP

каждый запрос и ответ с заголовками. Браузер отправляет на сервер

GET /index.htm HTTP/1.1

затем заголовки

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

затем сервер отправляет ответ

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

дополнительные заголовки могут быть настроено, например Cache-Control, все зависит от вашего языка (PHP, CGI, Java, htaccess) и веб-сервера (Apache и т. д.).


существует 3 способа разрешить кросс-доменное происхождение (исключая jsonp):

1) Установите заголовок на странице напрямую, используя язык шаблонов, такой как PHP. Имейте в виду, что перед вашим заголовком не может быть HTML, или он потерпит неудачу.

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

2) Измените файл конфигурации сервера (apache.conf) и добавьте следующую строку. Обратите внимание, что "*" представляет allow all. Некоторые системы также могут нуждаться в наборе учетных данных. В общем, allow all access-это риск для безопасности и должен быть избегал:

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

3) чтобы разрешить несколько доменов на веб-серверах Apache, добавьте в файл конфигурации

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

4) для разработки используйте только взломать браузер и разрешить неограниченное CORS с помощью Chrome разрешить-контроль-разрешить-расширение Origin