Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 11227|Відповідь: 1

Що таке крос-домен? Як розв'язати міждоменну систему?

[Копіювати посилання]
Опубліковано 14.07.2017 18:24:37 | | |
Що таке крос-домен?
Крос-домен, коли браузер не може виконувати скрипти з інших сайтів. Це спричинено гомологічною політикою браузера, яка є обмеженням безпеки, накладеним браузером на 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, крос-домен)

Вхід за гіперпосиланням видно.викликатиВхід за гіперпосиланням видно.(Піддомен різний: 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'); Способи забезпечення доступу





Попередній:win10 "php-cgi.exe - Процес FastCGI несподівано зупиняється"
Наступний:Головний офіцер з досвіду Yali Mini Program: 300 секунд проведуть вас крізь великий світ міні-програм
Опубліковано 15.07.2017 09:00:43 |
CORS (Спільний обмін ресурсами між походженням)
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com