Jump to content

Расширение URL адреса


Volk65

Recommended Posts

Например у меня работает UniGUI по адресу: www.myserver:8077

мне нужно, чтобы такой адрес тоже работал: www.myserver:8077/Help я могу в модуле Main перехватить /Help, но к сожалению, до Main не доходит - выдает ошибку "Invalid session or session timeout"

Можно как-то настроить так, чтобы вызов www.myserver:8077/Help  доходил до главной формы (Main) и не вызывал ошибку?

Link to comment
Share on other sites

Например в модуле "майн" отобразить не фрейм1, а фрейм2

Общая идея такая: при обычном запуске (www.myserver:8077) UniGUI запускается с вводом пароля, авторизацией и т.д. Так работает сейчас. А при запуске например: www.myserver:8077/Help/?ID=c689sK33q1dD1XYG4Yw37fU2n9274kWpnG4DPg5A5P чтобы не было авторизации и отображался фрейм справки.

Link to comment
Share on other sites

Я бы тоже так хотел, чтобы такое было возможно

https://myserver.com/EditObject/1188 - т.е. нужно открыть форму редактирования для объекта с ID=1188

https://myserver.com/AddObject - открыть форму добавления

https://myserver.com/Object/1188 - открыть для просмотра объект 1188

https://myserver.com?find&param1=10&param2=20-50 - открыть форму поиска и с параметрами param1=10 и param2 = от 20 до 50

Честно говоря, я раньше думал, что uniGUI позволяет работать с адресной строкой и с параметрами. А что, нет?

Link to comment
Share on other sites

С параметрами я работаю. У меня много используется различных параметров.

Сейчас так: www.myserver:8077/?HelpID=2

Вопрос можно ли так: www.myserver:8077/Help/?ID=2

 

Link to comment
Share on other sites

А если так попробовать:

1. В ServerModule

procedure TUniServerModule.UniGUIServerModuleHTTPCommand(..
begin
if ARequestInfo.Document = '/help' then
    begin
      ARequestInfo.Document:='';
      ARequestInfo.Params.Add('path=help');
      ARequestInfo.Params.Add('id='+ARequestInfo.Params.Values['id']);
    end;

end;

2. В MainModule

procedure  UniGUIMainModuleHandleRequest(ASession: TObject;
  var Handled: Boolean);

begin
  if ASession<>nil then
  begin
   if (TUniGUISession(ASession).ARequest.Params.Values['path']='help') then
    begin
      //Можно передать глобальные параметры, а уже в главной форме их увидеть
      id := TUniGUISession(ASession).ARequest.Params.Values['id'];
    end;
  end;

end;

 

Link to comment
Share on other sites

  • 7 months later...

Всем привет. В продолжение темы. Как корректно обработать параметры в пределах сессии. Допустим у нас есть ID сессии в эту сессию нужно передать какую-то команду, на стороне сессии, я так понимаю, в MainModule, команду принять и выполнить некоторое нужное действие. Например: открыть форму.

Как вот это всё сделать простым Get запросом на рут унигуя? Я так понимаю что это вполне возможно.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...