Problema: Queremos preencher parte de nossa página com HTML localizado em outro servidor.
.
Solução fácil
Use <iframe>. Basta adicionar a tag e pronto.
Solução Complexa
Use JSONP. Isso permitirá que você integre totalmente a parte externa em sua página.
Configure seu servidor para lidar com solicitações JSONP. Por exemplo, no Rails é tão fácil quanto mudar
render 'home', layout: nil
pararender json: {:html => render_to_string('home', layout: nil)}, callback: params[:callback]
O servidor agora responderá à
home.html?callback=CALLBACK
solicitação com:CALLBACK( {"html": "<div id="home">Hello From Home!</div>"} )
Inicie uma solicitação JSONP. Com jQuery, será semelhante a este:
$.getJSON(url+'?callback=?', function(data) { document.getElementById(id).innerHTML = data.html; });
É isso aí. O jQuery gera automaticamente uma URL única para a
callback
função e a executa automaticamente após a recuperação, chamando ofunction(data)
método.