Я пишу виджет веб-страницы для моей компании.Этот виджет должен внедрить фрагмент 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)
Я думаю, что это задыхается, но я не уверен, как обойти это, или если это лучший способ сделать это.
Спасибо!