我的deplhi应用程序(IE)中集成了一个浏览器。我需要调用某个Web应用程序,我需要在标题中为来自我的应用程序浏览器的所有请求添加一个新变量,例如jquery将HTTP_X_REQUESTED_WITH
参数添加到xhrobj中。我怎么能这样做呢?代码样本会很棒。我在TWebBrowser
使用。
答案 0 :(得分: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;
答案 1 :(得分:1)
IWebBrowser2.Navigate有一个参数,可让您定义其他标题。