Кросс-доменное продвижение сайтов - PullRequest
0 голосов
/ 11 августа 2010

Я хотел бы предложить своим пользователям способ продвижения моего веб-сайта, блога и т. Д. На их веб-сайте.Я могу сделать баннер, логотип, что угодно, что они могут вставить на свой сайт, но я бы хотел предложить динамический контент, такой как «заголовок 5 самых новых записей из моего блога».политика.Я знаю, что есть решение (и я его использую): они встраивают простой div и файл JavaScript.JS отправляет XmlHttpRequest на мой сервер и получает данные в виде JSONP, анализирует их и вставляет в div.

Но это единственный способ?Разве нет лучшего способа, которым я мог бы сделать это?В Интернете есть тонны виджетов (или что-то еще, я не знаю, как они называют ...), которые получают данные из другого домена.Как они это делают?

Ответы [ 4 ]

0 голосов
/ 11 августа 2010

Вы также можете установить заголовки HTTP Access-Control на стороне сервера. Таким образом, вы в основном управляете со стороны сервера тем, разрешено ли клиенту, который запустил XMLHttpRequest, обработать ответ. Любой недавний (и достойный) веб-браузер примет соответствующие меры.

Вот пример, нацеленный на PHP, как правильно установить заголовки.

header('Access-Control-Allow-Origin: *'); // Everone may process the response.
header('Access-Control-Max-Age: 604800'); // Client may cache this for one week.
header('Access-Control-Allow-Methods: GET, POST'); // Allowed request methods.

Ключ Access-Control-Allow-Origin: *. Это информирует клиента о том, что запросы, исходящие из * (фактически, везде), могут обрабатывать ответ. Если вы установите его, например, Access-Control-Allow-Origin: http://example.com, тогда веб-браузер сможет обрабатывать ответ только тогда, когда начальная страница будет обслуживаться из указанного домена.

Смотри также:

0 голосов
/ 11 августа 2010

CORS отличается от JSONP. Обычный AJAX. Все, что ваш сервер должен сделать, это установить определенный заголовок: Access-Control-Allow-Origin

Подробнее здесь: http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/

0 голосов
/ 11 августа 2010

Если вы пойдете по пути JSONP, вы неявно попросите своих пользователей доверять вам, поскольку они предоставят вам полный доступ к ресурсам их страницы (контент, файлы cookie, ...).Если они знают, что они основные жалуются.

Пока вы идете по маршруту iframe, проблем нет.Одним из известных на сегодняшний день примеров встраиваемого контента с помощью iframe является кнопка «Мне нравится» на Facebook.

И сделать эту сторону сервера с помощью прокси-сервера или других методов будет намного сложнее, поскольку существует множество сред.Я не знаю других способов.

0 голосов
/ 11 августа 2010

Общая тема многих решений, вместо этого - это получение JavaScript для вызова прокси-программы (на клиенте или на сервере), которая, в свою очередь, вызываетвеб-сервис для вас.

Вывод может быть записан в поток ответов и затем доступен через обычные каналы, такие как свойства responseText и responseXML XMLHttpRequest.

вы можете найти большерешение здесь:

http://developer.yahoo.com/javascript/howto-proxy.html

или здесь:

http://www.simple -talk.com / dotnet / asp.net / call-cross-domain-веб-сервисы-в-Аякса /

...