1、如果后台网络分配器格式 Handled=True 时,前台返回的结果为数组[] ,不带result节点
procedure TWebModule1.DSHTTPWebDispatcherFormatResult(Sender: TObject;
var ResultVal: TJSONValue; const Command: TDBXCommand; var Handled: Boolean);
begin
Handled := True;
end;
2、如果后台网络分配器格式 Handled=True 时,取返回返回数组的第一个值时,
前台返回的结果是后台API返回的什么就是什么。
procedure TWebModule1.DSHTTPWebDispatcherFormatResult(Sender: TObject;
var ResultVal: TJSONValue; const Command: TDBXCommand; var Handled: Boolean);
var
JSONValue: TJSONValue;
temp: string;
begin
temp:= Command.Text.Substring(0, 4);
if temp.ToUpper = '类名.API方法名' then
begin
Handled := True;
JSONValue := ResultVal;
ResultVal := TJSONArray(JSONValue).Get(0);
TJSONArray(JSONValue).Remove(0);
JSONValue.Free;
end;
procedure TWebModule1.DSHTTPWebDispatcherFormatResult(Sender: TObject;
var ResultVal: TJSONValue; const Command: TDBXCommand; var Handled: Boolean);
begin
Handled := True;
end;
2、如果后台网络分配器格式 Handled=True 时,取返回返回数组的第一个值时,
前台返回的结果是后台API返回的什么就是什么。
procedure TWebModule1.DSHTTPWebDispatcherFormatResult(Sender: TObject;
var ResultVal: TJSONValue; const Command: TDBXCommand; var Handled: Boolean);
var
JSONValue: TJSONValue;
temp: string;
begin
temp:= Command.Text.Substring(0, 4);
if temp.ToUpper = '类名.API方法名' then
begin
Handled := True;
JSONValue := ResultVal;
ResultVal := TJSONArray(JSONValue).Get(0);
TJSONArray(JSONValue).Remove(0);
JSONValue.Free;
end;
end;
注意:网络分配器格式改动的话,前台如果用html + javascript 来实现的话,相关文件也要改动,比如,DataSnap生成的connection.js、
serverfunctioninvoker.js、serverfunctions.js都要有改动。