delphi webbrowser 跨域访问
时间: 2023-07-11 15:55:29 浏览: 173
Delphi中使用WebBrowser控件进行跨域访问需要进行以下操作:
1. 在WebBrowser控件的BeforeNavigate2事件中添加如下代码:
```
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Headers := 'Access-Control-Allow-Origin: *';
end;
```
2. 在WebBrowser控件加载完成后,执行以下JavaScript代码:
```
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
WebBrowser1.OleObject.Document.parentWindow.execScript(
'var xhr = new XMLHttpRequest();' +
'xhr.open("GET", "http://www.example.com", true);' +
'xhr.onreadystatechange = function() {' +
'if (xhr.readyState == 4) {' +
'alert(xhr.responseText);' +
'}' +
'};' +
'xhr.send(null);', 'JavaScript');
end;
```
这样就可以实现Delphi中WebBrowser控件的跨域访问了。
阅读全文