Буду краток: работаю с Embedded WebBrowser, появилась необходимость избавиться от заголовка HTTP_REFERRER, который передаётся компонентом на сервер
Вот такая вещь работает без проблем:
procedure TForm1.Button1Click(Sender: TObject);
var Url, Flags, Headers, TargetFrameName, PostData: OLEVariant;
Ref: string;
begin
Ref:='http://www.google.com/';
Flags:='';
TargetFrameName:= '';
PostData := '';
Url:='http://example.com/ip.php';
Headers:=Headers+'Referer: '+Ref+#10+#13;
EmbeddedWB1.Navigate2(Url, Flags, TargetFrameName, PostData, Headers);
end;
Но этот код только открывает одну страницу, с которой ожно перейти на другую, а там уже снова HTTP_REFERRER будет передаваться
Тогда пришла мысль что тут надо будет поработать с
BeforeNavigate2. И начались проблемы:
procedure TForm1.EmbeddedWB1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Headers:='';
end;
НЕ РАБОТАЕТ :( Как будто этого там вообще участка кода нет.
Где-то увидел, что нало в beforenavigate2 ещё и navigate делать, вот так примерно
Head:='Referer: '+#10#13;
EmbeddedWB1.Navigate(URL, Flags, TargetFrameName, PostData, Head);
Только от этого ещё и глюки пошли страшные - зацикливание, ошибки
Уважаемые мастера, помогите, пожалуйста, поясните, почему очистка заголовков в BeforeNavigate2 не помогает, как будто я её и не делаю? Или я что-то важное упустил, тогда подскажите что. Кровь из носу надо от referrer избавиться, а я разобраться не могу :(((