Как я могу использовать Access-Control-Allow-Origin? Это просто идет между тегами заголовка HTML? - PullRequest
24 голосов
/ 10 августа 2011

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

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

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

Ответы [ 4 ]

16 голосов
/ 21 апреля 2015

Существует 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, добавьте в файл конфигурации следующее:) Для разработки используйте только взломайте ваш браузер и разрешите неограниченное количество CORS, используя расширение Chrome Allow-Control-Allow-Origin

11 голосов
/ 10 августа 2011

Это заголовок HTTP.Вы должны настроить свой веб-сервер или веб-приложение для идеальной отправки этого заголовка.Возможно, в 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 и т. Д.).

1 голос
/ 29 января 2019

Если вы используете Java и Spring MVC, вам просто нужно добавить следующую аннотацию в ваш метод, возвращающий вашу страницу:

@CrossOrigin(origins = "*")

"*" означает, что ваша страница будет доступна из любого места. Подробнее см. https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin.

0 голосов
/ 17 декабря 2018
<?php header("Access-Control-Allow-Origin: http://example.com"); ?>

Эта команда отключает только первую информацию о предупреждении консоли

Консоль

Результат: консольный результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...