JSONP-версия JQuery.load () - PullRequest
       27

JSONP-версия JQuery.load ()

0 голосов
/ 29 марта 2012

Я пишу виджет веб-страницы для моей компании.Этот виджет должен внедрить фрагмент HTML-кода из любого домена (нашего веб-сайта, возможно, CNAME клиента) на веб-сайт клиента, который может находиться в любом домене (Tumblr, blogspot, mydomain.com и т. Д.)

JQuery.load () будет делать именно то, что я хотел бы, за исключением того, что я не думаю, что он будет работать с JSONP.

На данный момент я выбрал на стороне клиента использование стандартного JQuery..ajax () GET call с использованием JSONP, который обращается к серверу.Сервер возвращает объект с одним атрибутом (html для внедрения), который работает, за исключением того факта, что я все еще работаю над тем, чтобы не задушить полезную нагрузку HTML.Кажется, если я избегаю HTML, он проходит как очарование, но я ищу лучший путь ...

FWIW, я запускаю RoR на стороне сервера.Есть какие-нибудь идеи относительно лучших практик, чтобы заставить это работать?

Это код, который я использую на клиенте:

$.ajax({
dataType: 'jsonp',
url: "http://test.host:3000/widgets/widget_1?username=foo",
crossDomain: true,
success: function(data) { $("#my-div").html.(data.foo) }
});

И что я возвращаю с сервера:

JQueryCallback({"foo": "<div>bar</div>"})

И ошибка, которую я получаю в консоли Firebug:

неопределенный строковый литерал (указывающий на начало открытого тега в div)

Я думаю, что это задыхается, но я не уверен, как обойти это, или если это лучший способ сделать это.

Спасибо!

1 Ответ

0 голосов
/ 29 марта 2012

спасибо за помощь. у меня были следующие основные проблемы:

  1. дополнительная точка после метода html () и
  2. Я не сбежал должным образом JSON.

Сейчас я использую to_json, чтобы лучше кодировать выход HTML.

...