掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
POSTを行うには? (ID:44054)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
OnBeforeNavigate2についてお聞きします。 HTMLを動的追加を行うの続きなる形ですが、TWebBrowserでログイン画面を 表示し、ログインした際に、POST送信できていました。 OnBeforeNavigate2の処理を追加し、カスタムヘッダーを出力するように 修正をしております。 GETをした時には、問題ないのですが、ログイン画面にてID/PWを入力し POST処理を行うとGETで遷移されてしまい、ログイン認証が取れません。 OnBeforeNavigate2内部で、POSTする内容がVariant Arrayになっている こととかは、分かったのですが、GETをPOSTにする方法が分かりません。 皆さまのお知恵をお貸し頂けないでしょうか? 〜OnBeforeNavigate2に割り当てたコード(GET/POST関係なく全てGETでアクセスされる。)〜 procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); var NewHeaders: OleVariant; begin if (pDisp as IUnknown) = (WebBrowser1.ControlInterface as IUnknown) then begin if Pos('X-APP', Headers) <> 0 then Exit; Cancel := True; (pDisp as IWebBrowser2).Stop; NewHeaders := Headers + 'X-APP: APP'#13#10; (pDisp as IWebBrowser2).Navigate2(URL, Flags, TargetFrameName, PostData, NewHeaders); end; end; 〜ログインフォーム〜 <form action="login.php" method="post"> ログインID<input type="text" name="login-id"><br /> パスワード<input type="password" name="password"><br /> <input type="submit" value="ログイン"> </form>
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.