2017-04-05 1 views
1

Je souhaite autoriser les utilisateurs à intégrer du contenu de mon application dans leurs sites. Pour cela, j'ai essayé d'exécuter la solution suivante: Allow users to embed my content into their sites (like blogs) -- rails 4Autoriser les utilisateurs à intégrer mon contenu dans leur site - rails 4 (suivi)

Malheureusement, je rencontre un problème avec iframe.src dans embed.js, car il tente d'accéder à un dossier "embed" dans le fichier de l'utilisateur lieu:

GET file:///.../embed/1 net::ERR_FILE_NOT_FOUND

#public/embed.js 
window.onload = function() { 

    //Params 
    var scriptPram = document.getElementById('load_widget'); 
    var id = scriptPram.getAttribute('data-page'); 

    /iFrame 
    var iframe = document.createElement('iframe'); 
    iframe.style.display = "none"; 
    iframe.src = "embed/" + id; 
    document.body.appendChild(iframe); 
}; 

Si je change le iframe.src à une URL absolue pointant vers mon application, par exemple « http://localhost:3000/embed », puis je lance dans une autre erreur:

Refused to display 'http://localhost:3000/embed/1' in a frame because it set 
'X-Frame-Options' to 'SAMEORIGIN'. 

Désolé si cette question peut sembler aléatoire, je suis sur mes premiers pas avec rubis sur des rails. Je promets d'améliorer :)

Répondre

0

Vous devez modifier votre code de contrôleur et j'espère que cela fonctionnera -

class Embed::PagesController < ApplicationController 
layout false 
after_action :allow_iframe, only: :show 

def show 
    @page = Page.find params[:id] 
end 

private 

def allow_iframe 
    response.headers.except! 'X-Frame-Options' 
end 
end 
+1

Merci beaucoup - eu à travailler comme ça! – bstone