その通りです。セキュリティ上の理由 (同一オリジン ポリシー) により、必要なものはブラウザによってブロックされます。
できること:
iframe でフォームをリロードし、js SDK から取得したデータを渡します。データを iframe に POST することもできます (Facebook がキャンバス アプリで行うように)。
iframe の場所を変更できるはずですが、ハッシュ部分 (フラグメント) のみを変更すると、iframe がリロードされません。
iframe では、場所の変更に注意し、フラグメントからデータを抽出します。
問題は、この方法ではおそらくブラウザの履歴が台無しになることです。
クロスドメイン通信の別のソリューション、おそらくeasyXDMを見つけてください。
編集
最初のオプションの 2 つの実装を次に示します。
1) 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) POST を iframe に使用する
<form method="POST" action="USER_FORM_URL" target="userform" id="postForm">
<input type="hidden" name="fbResponse" id="fbResponseInput" />
</form>
<iframe name="userform"></iframe>
次に、iframe 自体で (GET または POST から) データを取得し、それに応じてユーザー フォームをレンダリングします。
<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>