Chrome блокирует различные запросы происхождения
Когда script пытается получить доступ к кадру из другого источника, Chrome блокирует его и выдает исключение как
"Uncaught SecurityError: заблокирован фрейм с источником" поставщик домена "от доступа к кадру с исходным" mydomain ". Протоколы, домены и порты должны соответствовать".
Я получил эту ошибку после некоторого обновления в google chrome. Любые предложения?
Ответы
Ответ 1
Прямые вызовы Javascript между фреймами и/или окнами разрешены только в том случае, если они соответствуют политике того же самого происхождения. Если ваше окно и iframe имеют общий родительский домен, вы можете установить document.domain
в "домен ниже" ) один или оба, чтобы они могли общаться. В противном случае вам нужно будет изучить что-то вроде postMessage() API.
Ответ 2
Это обновление для системы безопасности. Если злоумышленник может модифицировать какой-либо файл на веб-сервере (например, JS, например), он может сделать каждую загруженную страницу для загрузки другого script (например, чтобы заблокировать ваш пароль или украсть ваш SessionID и отправить его на свой сервер).
Чтобы этого избежать, браузер проверяет политику одного и того же происхождения
Ваша проблема в том, что браузер пытается загрузить что-то с помощью script (с запросом Ajax), который находится в другом домене (или поддомене).
Чтобы избежать этого (если он находится на вашем собственном веб-сайте), вы можете:
- Скопируйте элемент на свой сервер (но он будет статическим).
- Вы можете изменить свой HTTP-заголовок, чтобы принять контент Cross-Origin. Дополнительную информацию см. В документации Access-Control-Allow-Origin.