избегая iframe, но имея некоторую активность iframe в Rails - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть два сайта, мой основной сайт и справочный сайт с документацией.Основной сайт - это рельсы, а другой - просто блог в стиле WordPress.В настоящее время он загружается в основной сайт с помощью iframe, но есть ли хороший способ извлечь html из другого сайта, как частичный междоменный (поддомен)?Или я должен просто придерживаться того, что работает?

1 Ответ

1 голос
/ 06 сентября 2010

Если бы все источники данных находились в одном домене, вы могли бы использовать прямую AJAX , чтобы получить дополнительный контент и перенести его на свою страницу. Но, поскольку данные поступают из разных доменов, встроенная в веб-браузер политика безопасности с одинаковым происхождением будет препятствовать ее работе.

Популярный обходной путь называется JSONP , который позволит вам получать данные с любого взаимодействующего сервера. Ваша реализация может выглядеть примерно так (с использованием jQuery):

$.getJSON(
  "http://my.website.com/pageX?callback=?",
  function(data) { 
    $("#help").append(data) 
  } 
)

Единственная загвоздка в том, что данные, возвращаемые вашим сервером, должны быть упакованы как вызов функции javascript. Например, если ваши данные были:

<h1>Topic Foo</h1>

Тогда ваш сервер должен ответить на запрос JSONP следующим образом:

callbackFunction("<h1>Topic Foo</h1>")
...