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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...