2012-02-09 5 views
4

私のdeplhiアプリケーション(IE)にブラウザが組み込まれています。特定のWebアプリケーションを呼び出す必要があり、jqueryがxhrobjのHTTP_X_REQUESTED_WITHパラメータに追加するように、アプリケーションのブラウザから来るすべての要求のヘッダーに新しい変数を追加する必要があります。どのように私はそれを行うことができますか?コードサンプルは素晴らしいでしょう。私はTWebBrowserをusinしています。delphiの「カスタム」ブラウザでrequestHeadersを変更します

答えて

6

あなたはOnBeforeNavigate2イベントにヘッダを変更することができます。

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject; 
    const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, 
    Headers: OleVariant; var Cancel: WordBool); 
var 
    NewHeaders: OleVariant; 
begin 
    // do not allow frames or iframes to raise this event 
    if (pDisp as IUnknown) = (WebBrowser1.ControlInterface as IUnknown) then 
    begin 
    // avoid stack overflow: check if our custom header is already set 
    if Pos('MyHeader', Headers) <> 0 then Exit; 

    // cancel the current navigation 
    Cancel := True; 
    (pDisp as IWebBrowser2).Stop; 

    // modify headers with our custom header 
    NewHeaders := Headers + 'MyHeader: Value'#13#10; 

    (pDisp as IWebBrowser2).Navigate2(URL, Flags, TargetFrameName, PostData, NewHeaders); 
    end; 
end; 
関連する問題