Что такое кросс-домен? Кросс-домен, когда браузер не может выполнять скрипты с других сайтов. Она вызвана гомологичной политикой браузера, которая является ограничением безопасности, наложенным браузером на Javascrip{filter}t.
Так называемое гомологическое означает, что доменное имя, протокол и порт одинаковы, неважно, если вы не поняли, дайте короткую оценку:
http://www.itsvse.com/index.htmlвзыватьhttp://www.itsvse.com/server.PHP(Не кросс-домен)
http://www.itsvse.com/index.htmlВызов http://www.456.com/server.php (разная первичная область: itsvse/456, кросс-домен)
Вход по гиперссылке виден.взыватьВход по гиперссылке виден.(Поддомен разный: abc/def, кросс-домен)
http://www.itsvse.com:8080/index.html 调用 http://www.itsvse.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.itsvse.com/index.htmlВызов https://www.itsvse.com/server.php (разные протоколы: http/https, кросс-доменные)
Обратите внимание: localhost и 127.0.0.1, хотя оба указывают на локальный, также являются междоменными.
Когда браузер запускает скрипт javascrip{filter}t, он проверяет, к какой странице относится скрипт, и если страница не гомологична, она не будет выполнена.
Решение:
1、JSONP:
Я не буду вдаваться в подробности о том, как им пользоваться, но стоит отметить, что JSONP поддерживает только GET-запросы, а не POST-запросы.
2. Агент:
Напримерwww.itsvse.com/index.htmlЕсли нужно вызвать www.456.com/server.php, можно написать интерфейсwww.itsvse.com/server.phpЭтот интерфейс вызывает www.456.com/server.php на бэкенде, получает возвращаемое значение и возвращает его в index.html, который является прокси-паттерном. Это эквивалентно обходу браузерной стороны, так что, естественно, проблем между доменами нет.
3. Изменить заголовок на стороне PHP (метод XHR2)
Добавьте следующие два предложения в скрипт интерфейса PHP: header('Access-Control-Allow-Origin:*'); Разрешить доступ со всех источников header('Access-Control-Allow-Method:POST,GET'); Способы обеспечения доступа
|