XMLHTTP和“拒绝访问”错误

时间:2011-12-30 00:35:22

标签: delphi xmlhttprequest msxml

我正在尝试使用MS XMLHTTP COM检索HTTP文档的内容。我确实复制了以下示例代码,但即使这样也无效,并且在发送方法调用时出现 EOLEException错误'访问被拒绝'失败。

uses
  MSXML, ComObj, ActiveX;

procedure TForm1.Button1Click(Sender: TObject);
var
  httpDoc: XMLHTTP;  // IXMLHTTPRequest
begin
    httpDoc := CreateOleObject('MSXML2.XMLHTTP') as XMLHTTP;
  try
    httpDoc.open('GET', 'http://www.google.com/index.html', False, EmptyParam, EmptyParam);
    httpDoc.send('');  // <-- EOLEException 'Access is denied'
    if (httpDoc.readyState = 4) and (httpDoc.status = 200) then
      ShowMessage(httpDoc.responseText);
  finally
    httpDoc := nil;
  end;
end;

我真的不知道我做错了什么:(

1 个答案:

答案 0 :(得分:5)

Google会执行基于位置的重定向,有时会涉及重定向到其他域。 XMLHTTP不喜欢这样。此外,当从浏览器外部的本地脚本(例如来自VB,Delphi等)运行时,似乎XMLHTTP不允许访问远程服务器。请参阅this discussionthis discussionthis documentation