Как использовать 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