Hai ragione, ciò che si vuole verra 'bloccato dal browser a causa di sicurezza ragioni (stessa politica di origine).
Cosa si può fare:
Ricarica il modulo nella iframe e passarlo i dati che si ottiene dal js SDK, è possibile anche post i dati nel IFRAME (come facebook fa con le applicazioni di tela).
Dovresti essere in grado di modificare la posizione dell'iframe, ma solo la parte di hash (frammento), che non farà ricaricare l'iframe.
Nell'iframe tenere conto delle modifiche alla posizione ed estrarre i dati dal frammento.
Il problema è che questo metodo probabilmente rovinerà la cronologia del browser.
Trova un'altra soluzione per la comunicazione tra domini, forse easyXDM?
Modifica
Qui ci sono due implementazioni della prima opzione:
1) Utilizzando GET
<iframe id="userform"></iframe>
<script type="text/javascript">
// load and init FB JS SDK
FB.api("me", function(response) {
document.getElementById("userform").src = USER_FORM_URL + "?name=" + response.name;
});
</script>
2) usando la posta in iframe
<form method="POST" action="USER_FORM_URL" target="userform" id="postForm">
<input type="hidden" name="fbResponse" id="fbResponseInput" />
</form>
<iframe name="userform"></iframe>
Quindi, sull'iframe stesso, ottenere i dati (da GET o POST) e rendere il modulo utente di conseguenza.
<script type="text/javascript">
// load and init FB JS SDK
FB.api("me", function(response) {
document.getElementById("fbResponseInput").value = JSON.stringify(response);
document.getElementById("postForm").submit();
});
</script>
fonte
2012-05-29 07:38:04
solo per controllare se ho ottenuto questo diritto: Hai un app pagina che è ospitato dal dominio DX, in quella pagina (Pa) che si desidera caricare un'altra pagina (PB, con una forma), che è anche servito da dominio dX in un iframe, è così giusto? Se sì, da dove vuoi effettuare chiamate API? pA, pB o entrambi? Inoltre, nelle impostazioni dell'app il dominio dell'app è impostato su dX? –
Negativo. pB, con un modulo viene fornito dal dominio dZ in un iframe. Voglio fare una chiamata API tramite FB Javascript SDK in pA per aggiornare il modulo (dettagli utente) in pB. Personalmente, non credo sia possibile in quanto potrebbe sembrare un enorme problema di sicurezza se potessi. Ma volevo solo ricontrollare questo su SO. – super9
Dovresti anche ricontrollare che ciò che stai tentando di fare non viola le politiche della piattaforma, almeno a causa del trasferimento di dati ad altri domini/siti e/oa causa di dati di moduli creati su dettagli recuperati dall'API di Facebook. –