Какво е крос-домейн? Cross-domain, когато браузърът не може да изпълнява скриптове от други уебсайтове. Тя се дължи на хомологната политика на браузъра, която е ограничение за сигурността, наложено от браузъра върху Javascrip{filter}t.
Т.нар. хомолог означава, че домейн, протокол и порт са еднакви, няма значение дали не разбирате, дайте едно обобщение:
http://www.itsvse.com/index.htmlПозовеhttp://www.itsvse.com/server.PHP(Без крос-домейн)
http://www.itsvse.com/index.htmlCall http://www.456.com/server.php (различен първичен домейн: itsvse/456, cross-domain)
Входът към хиперлинк е видим.ПозовеВходът към хиперлинк е видим.(Поддомейн различен: abc/def, cross-domain)
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, cross-domain)
Моля, обърнете внимание: localhost и 127.0.0.1, макар и да сочат към local, също са cross-domain.
Когато браузърът изпълни 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'); Начини за разрешаване на достъп
|