Same Origin Policy
Вы пытаетесь обойти Same Origin Policy. Он встроен в каждый браузер и обычно не является чем-то, что вы можете или хотите отключить/обмениваться/etc. Это очень важный договор безопасности между вашим сайтом, пользователем и браузером пользователя.
CORS (возможно)
CORS позволяет ваш веб-сервер, чтобы сообщить браузеру/клиенты, которые имеют доступ к другому домену допустимо. Это делается путем иметь следующий вывод заголовка HTTP на вашем веб-сервере
Access-Control-Allow-Origin: http://www.example.com
Если вы не можете контролировать свои заголовки HTTP, то вы не можете использовать CORS. Реализация этого является спецификой языка/структуры.
Обратите внимание, что вы должны проверить, чтобы browser compatibility был ограничен у IE8/9. Также имейте в виду, что это потенциальный вектор атаки. Он позволяет откликам сторонних сайтов выполнять атаки XSS, если вы безответственно используете данные ответа.
JSONP (возможно)
JSONP умный способ передачи и получения данных между серверами путем динамического добавления script
тег с src
atrribute равным "yoururl.com?<your parameter data>"
на вашей странице. Это единственный законный способ совершить такой подвиг без веб-прокси (см. Ниже) или апплета (Flash/Java). Однако у него есть свои собственные риски безопасности, если вы не являетесь поставщиком обоих концов запроса. Помните, что JSONP позволяет удаленному серверу выполнять код в вашем контексте, и вы должны быть very careful who you give that power to.
«Vanilla» AJAX (не возможно)
Если вы не используете JSONP для извлечения данных, то вы, скорее всего, пытается использовать запрос AJAX для извлечения данных. Запросы AJAX также подчиняются одной и той же политике происхождения. Библиотеки JavaScript (например, jQuery, Prototype, Dojo и т. Д.) Не могут обойти эту политику как базовое поведение для Ajax-запроса. Тем не менее, они могут поддерживать JSONP (который помнит сейчас, это не AJAX).
AJAX ж/Web Proxy (возможно)
Если вы хотите, чтобы запрашивать данные с другого сервера, вы можете направить запрос. Сервер вашего основного сайта будет действовать как прокси.Вам нужно будет сделать запрос AJAX на свой собственный сервер, этот код на стороне сервера затем отправит запрос другому домену и затем отправит ответ на ваш скрипт с помощью ответа на вызовы AJAX.
Это обычная модель и подробно описана здесь как Web Proxy Pattern и прикольная дружественная Yahoo одна here (but remember it's Yahoo specific, just take the general idea). Это, однако, зависит от языка на стороне сервера. Общая реализация будет одинаковой, однако код для этого будет зависеть от выбранного вами языка на стороне сервера (PHP, Ruby, Python, C и т. Д.). На некоторых языках уже есть библиотеки/modules/etc для поддержки такого шаблона.
Flash (возможно, не по умолчанию)
Вспышка в состоянии по умолчанию не поддерживает перекрестные запросы домена. Он может быть включен в Flash7 + с cross-domain policy files, но настоятельно рекомендуется против. Ваш скрипт должен будет взаимодействовать с Flash API, который будет делать запросы и возвращать данные на ваш JavaScript.
Java Applet (возможно, не по умолчанию)
Java также подвергается той же политики происхождения, но имеет ту же работу вокруг вспышки в качестве described here on its release.
Различных другие «писаки»
Есть другие взломы там, но они, как правило требуют, чтобы контролировать оба конца или имеют согласованный стандарт связи. Например, «window.name» взломает. Я не предлагаю большинство этих методов.
Другие решения
Другой вопрос похож на это было предложено. В нем изложены некоторые другие методы, которые я не покрываем: Ways to circumvent the same-origin policy
Лучшие решения
- CORS - если вы доверяете 3 участника
- Web Proxy - если вы не
Веб-прокси на вашем собственном домене может позволить вам дезинфицировать извлекаемые данные, он обеспечивает максимальную защиту вашего пользователя. Однако, если вы делаете нулевую санитарию, она не более безопасна, чем любой из описанных здесь методов. Если вы выполняете какой-либо веб-прокси-сервер, убедитесь, что его запросы ограничены и с сайтов, которые вы хотите. Иначе вы, по сути, будете создавать open proxy, которые могут быть подвергнуты злоупотреблениям пользователями, если они обнаружены, и вы получите правовые проблемы.
Вы будете вероятно, найдет ответ на ваш вопрос среди ответов на [Способы обхода политики одного и того же происхождения] (http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy). Ваш вопрос кажется по существу тем же. –
Я использую YQL + jQuery для доступа к содержимому перекрестного домена. –