質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

1831閲覧

別ページと同時submit

mi37

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2019/03/26 08:28

一つのログイン画面で、別サイトも同時にログインさせたいのですが、実装方法がわかりません。
login.html

<form name="frm"> <input type="submit" value="ログイン"/> </form>

これと同様の作りのサイトがあり、ログインボタンを押したら、そちらもログインしたことにしたいので、
iFrameを使って隠しページを持って置き、上記画面でsubmitしたら、同じようにsubmitしようとしました。

<iframe src="http://127.0.0.1/login2/" name="sample" id="sample" width="0" height="0"> </iframe>

document.getElementById("sample")までは良いのですが、
document.getElementById("sample").contentWindowとすると反応がありません。
アドレスは同じですが、CORS の制約ですかね?

他に方法等あったら教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/03/26 10:14

別サイト=別サーバー でログイン情報やセッション自体は全く別ですよね? このようなログインをどうしてさせるのか状況が全く分からないですが、 別サイトのログイン情報をform送信したサイト側で利用することはあるのでしょうか。
mi37

2019/03/26 10:28

ログイン後、window.openで別サイトを開くのですが、ログインしていないためログインページに飛ばされてしまうのです。 既にログインしていれば素直に飛ばしたいページに行けるので。
m.ts10806

2019/03/26 10:45

まだ回答できる内容ではないのでこちらでコメント続けますが、 大前提として、フォーム送信自体は1方向に(formのaction属性で指定した先)しかできません。 そのサイトがご自身で制御されているものでなければやろうとしていることはかなり難解です。 そのサイトがOAuthのAPIでも提供していれば別でしょうけど。
mi37

2019/03/27 10:31

両方とも制御できるものですが、ポートを分けて別アプリケーションとして動いています
guest

回答2

0

iframe.contentWindowは取得できるはずですが……
もちろん、documentが取れないので、submitも無理ではないかと思います。仕様を読んだ感じCORSのように共有許可を出すこともできなさそうです。
同一オリジンポリシー - ウェブセキュリティ | MDN

yambejpさんのおっしゃるようにCORSを開けてajaxで対応するか、別サイトにwindow.postMessageで通信をしてそちらでログイン処理をさせるか、で代替できるのではないでしょうか。
window.postMessage - Web API | MDN

投稿2019/03/27 11:21

Lhankor_Mhy

総合スコア36115

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2019/03/27 11:24

同一IPなら、双方で document.domain をポート番号なしに切り替えれば、同一オリジンと見なされそうな気がしますね。
guest

0

iframeの制限は結構硬いのでサーバーがlocalhost(ループバック)なら
設定をゆるく変えるのが妥当でしょうね
ただWEBページでiframeにlocalhostを指定するということは
他のマシンでは動かないということですがそれで大丈夫なのでしょうか?
そもそもiframeで通るならajaxで処理してもよいような気がします

投稿2019/03/27 00:59

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mi37

2019/03/27 10:33

本当はグローバルIPなのですが、こちらに掲載する際にlocal扱いにしました。 なので、他のマシンでも動きます。 Ajaxで可能なのでしょうか?
yambejp

2019/03/27 10:36

グローバルIPじゃCORS制約は避けられないかなぁ もちろん設定をゆるくすればいけるでしょう 現状iframeが通らないならajaxもおそらく無理です
mi37

2019/03/27 11:12

同じサイト上にある別アプリケーションになるので、同じグローバルIPなのですが、それでもやっぱり無理ですかね?
yambejp

2019/03/27 11:20

> 同じサイト上にある それならテストしてみる価値はあるかもしれませんね 実際にやってみて結果を確認してみてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問