Как использовать Access-Control-Allow-Origin? Разве это просто между тегами html head?
Я читал о Access-Control-Allow-Origin
, потому что кажется эффективным для разрешения запросов на междоменные запросы, так как у меня есть доступ к внешнему сайту. Мой вопрос ism как использовать Access-Control-Allow-Origin
, чтобы разрешить запросы на междоменные запросы. Я попробовал это (не смейтесь) (кстати, все, что я хочу, это для одного числа, 1 или 0 для возврата)
<html>
<head>
Access-Control-Allow-Origin: *
</head>
<body>
1
</body>
</html>
Я закрываю? Спасибо за вашу помощь. Если есть простой способ сделать простой запрос на междоменный доступ, сообщите мне.
Ответы
Ответ 1
Это HTTP-заголовок. Вы бы настроили ваш веб-сервер или webapp, чтобы отправить этот заголовок в идеале. Возможно, в htaccess или PHP.
В качестве альтернативы вы можете использовать
<head>...<meta http-equiv="Access-Control-Allow-Origin" content="*">...</head>
Я не знаю, будет ли это работать. Не все HTTP-заголовки могут быть настроены непосредственно в HTML.
Это работает как альтернатива многим HTTP-заголовкам, но см. ниже @EricLaw. Этот конкретный заголовок отличается.
Caveat
Этот ответ строго о том, как устанавливать заголовки. Я ничего не знаю о разрешении запросов на междоменные запросы.
О заголовках 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 и т.д.).
Ответ 2
Существует 3 способа разрешить междоменное происхождение (кроме jsonp
):
1) Установите заголовок на странице, используя язык шаблонов, такой как PHP. Помните, что перед вашим заголовком не может быть HTML, иначе он потерпит неудачу.
<?php header("Access-Control-Allow-Origin: http://example.com"); ?>
2) Измените файл конфигурации сервера (apache.conf
) и добавьте эту строку. Обратите внимание, что "*"
представляет разрешить все. Некоторым системам также может понадобиться набор учетных данных. В целом, разрешить любой доступ - это риск для безопасности, которого следует избегать:
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=$0$1
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header set Access-Control-Allow-Credentials true
</IfModule>
4) Для разработки используйте только взломать браузер и разрешить неограниченное количество CORS с помощью расширения Chrome Allow-Control-Allow-Origin
5) Отключить CORS в Chrome: полностью выйти из Chrome. Откройте терминал и выполните следующее. Только будьте осторожны, вы отключаете веб-безопасность:
open -a Google\ Chrome --args --disable-web-security --user-data-dir
Ответ 3
Если вы используете Java и Spring MVC, вам просто нужно добавить следующую аннотацию в ваш метод, возвращающую вашу страницу:
@CrossOrigin(origins = "*")
"*" означает, что ваша страница будет доступна из любого места. См. Https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin для получения дополнительной информации об этом.
Ответ 4
<?php header("Access-Control-Allow-Origin: http://example.com"); ?>
Эта команда отключает только первую информацию о предупреждении консоли
приставка
Результат: консольный результат