因此,我开始使用 SMS,并尝试制作一个程序(标签和按钮)来通过发布请求访问网站并显示结果。
我对提示/警告/错误没有任何问题,对我来说一切都很好。下面的代码是对几个现有示例的重做。
procedure TForm1.ExecuteCmd;
var
whttp : TW3HttpRequest;
wParams : string;
begin
wHttp := TW3HttpRequest.Create;
try
whttp.OnDataReady := lambda (Sender)
if (w3Label1.caption = '') then
w3Label1.caption := wHttp.ResponseText;
end;
whttp.OnReadyStateChange := lambda (Sender)
if (wHttp.ReadyState = 4) and (wHttp.Status = 200) then
begin
if (w3Label1.caption = '') then
w3Label1.caption := wHttp.ResponseText;
end;
end;
wParams := 'cmd=TestID1';
whttp.open('POST','http://www.server1.com/executecmd.php');
whttp.RequestHeaders['Content-type'] := 'application/x-www-form-urlencoded';
whttp.Send(wParams);
finally
wHttp.free;
end;
end;
procedure TForm1.W3Button1Click(Sender: TObject);
begin
ExecuteCmd;
end;
问题是这样的,当我实际单击按钮时,我收到以下错误消息: Uncaught TypeError: Cannot read property 'readyState' of null [line #6277]
错误出现在自动生成的代码中,似乎与我专门编写的内容无关。如果我从我的代码中取出所有对 ReadyState 的引用,我仍然会收到错误消息。
我错过了什么?我觉得它与 Lambda 函数有关。