XMLHTTP и ошибка «Отказано в доступе» - PullRequest
6 голосов
/ 30 декабря 2011

Я пытаюсь получить содержимое HTTP-документа с помощью MS XMLHTTP COM.Я скопировал следующий пример кода, но даже это не работает и завершается с ошибкой EOLEException «Отказано в доступе» при вызове метода send .

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 Ответ

5 голосов
/ 30 декабря 2011

Google выполняет перенаправления на основе местоположения, а иногда это включает перенаправление на другой домен. XMLHTTP не нравится это. Также кажется, что XMLHTTP не разрешает доступ к удаленным серверам при запуске из локального сценария (например, из VB, Delphi и т. Д.) Вне браузера. См. это обсуждение , это обсуждение и эту документацию .

...