Recent

Author Topic: (solved)how to define cors in free pascal  (Read 3042 times)

Packs

  • Sr. Member
  • ****
  • Posts: 485
Re: how to define cors in free pascal
« Reply #15 on: September 24, 2024, 05:53:27 pm »
No . it is not working

Warfley

  • Hero Member
  • *****
  • Posts: 1872
Re: how to define cors in free pascal
« Reply #16 on: September 25, 2024, 01:36:13 am »
What does your browsers network monitor say when you do the request? You can open the developer tools, enable the network monitor and it will show you all requests and responses sent by the website, including headers

Packs

  • Sr. Member
  • ****
  • Posts: 485
Re: how to define cors in free pascal
« Reply #17 on: September 25, 2024, 08:02:09 pm »
Have you tried with datamodule and mydac component.

I think mydac is blocking .

Thaddy

  • Hero Member
  • *****
  • Posts: 16783
  • Ceterum censeo Trump esse delendam
Re: how to define cors in free pascal
« Reply #18 on: September 26, 2024, 01:51:17 pm »
Yes, so?
You already used a thread.
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

Packs

  • Sr. Member
  • ****
  • Posts: 485
Re: how to define cors in free pascal
« Reply #19 on: September 26, 2024, 01:58:28 pm »
I have checked all options it is not working with angular .

in angular browser it self is calling pre-flight and sending error to angular code .

it is not reaching server . so server can't able to send the response header for options .

Thaddy

  • Hero Member
  • *****
  • Posts: 16783
  • Ceterum censeo Trump esse delendam
Re: how to define cors in free pascal
« Reply #20 on: September 26, 2024, 03:58:11 pm »
Show us a short compilable, but not working example.
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

Packs

  • Sr. Member
  • ****
  • Posts: 485
Re: how to define cors in free pascal
« Reply #21 on: September 28, 2024, 08:48:52 am »
Browser not calling lazarus rest api it is giving cors error in prefight request  . I have other api on same server different port which is golang it is working perfectly . I am sharing golang and lazarus header

golnag  Header
Code: Pascal  [Select][+][-]
  1. authority:xxx:7009
  2. method:POST
  3. path:/v1/api/get_apidata
  4. scheme:https
  5. accept:application/json
  6. accept-encoding:gzip, deflate, br, zstd
  7. accept-language:en-US,en;q=0.9,en-IN;q=0.8
  8. authorization:Bearer XXXX
  9. content-length:120
  10. content-type:application/json
  11. origin:http://localhost:4200
  12. priority:u=1, i
  13. referer:http://localhost:4200/
  14. sec-ch-ua:"Microsoft Edge";v="129", "Not=A?Brand";v="8", "Chromium";v="129"
  15. sec-ch-ua-mobile:?0
  16. sec-ch-ua-platform:"Windows"
  17. sec-fetch-dest:empty
  18. sec-fetch-mode:cors
  19. sec-fetch-site:cross-site
  20. user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
  21.  

Lazrus Header
Code: Pascal  [Select][+][-]
  1. accept:application/json
  2. authorization:Bearer XXXX
  3. content-type:application/json
  4. referer:http://localhost:4200/
  5. sec-ch-ua:"Microsoft Edge";v="129", "Not=A?Brand";v="8", "Chromium";v="129"
  6. sec-ch-ua-mobile:?0
  7. sec-ch-ua-platform:"Windows"
  8. user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
  9.  

Packs

  • Sr. Member
  • ****
  • Posts: 485
Re: how to define cors in free pascal
« Reply #22 on: September 28, 2024, 09:32:44 am »
Thank you every one .

It is working now .

solution : THTTPApplication.BeforeRequest manged for options request

joguenco

  • Newbie
  • Posts: 2
Re: (solved)how to define cors in free pascal
« Reply #23 on: March 27, 2025, 10:57:58 pm »
Hi, please be nice. Could you share the solution with source code? I have the same problem with POST method

Packs

  • Sr. Member
  • ****
  • Posts: 485
Re: (solved)how to define cors in free pascal
« Reply #24 on: March 30, 2025, 07:25:15 pm »
Code: Pascal  [Select][+][-]
  1.     with HTTPRouter do
  2.     begin    
  3.  
  4.        RegisterRoute('/currenttime', rmPost, @timeEndpoint);    
  5.        BeforeRequest := @Before_request_router;
  6.       AfterRequest := @After_request_router;
  7.  
  8.     end;
  9.    
  10.  
  11. procedure THttpServerThread.Before_request_router(Sender: TObject;
  12.   req: TRequest; res: TResponse);
  13. begin
  14.   Frmmain.Memo1.Lines.Add('before request  ');
  15.  
  16.   with res do
  17.   begin
  18.     SetCustomHeader('Access-Control-Allow-Credentials', 'true');
  19.     SetCustomHeader('Access-Control-Allow-Origin', '*');
  20.     SetCustomHeader('Access-Control-Max-Age', '86400');
  21.     SetCustomHeader('Access-Control-Allow-Methods',
  22.       'POST, GET, OPTIONS, PUT, DELETE');
  23.     SetCustomHeader('Access-Control-Allow-Headers',
  24.       'Originname,Pathname,Anonymous,Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization,responsetype');
  25.   end;
  26.  
  27.   if req.Method.ToUpper = 'OPTIONS' then
  28.   begin
  29.     Frmmain.Memo1.Lines.Add('before options  ');
  30.     res.Code := 204;
  31.     res.SendResponse;
  32.     //exit;
  33.   end;
  34.  
  35. end;
  36.  
  37. procedure THttpServerThread.After_request_router(Sender: TObject;
  38.   ARequest: TRequest; AResponse: TResponse);
  39. begin
  40.   Frmmain.Memo1.Lines.Add('After http request ');
  41. end;
  42.  
  43.  
  44.  

this will work for you.

joguenco

  • Newbie
  • Posts: 2
Re: (solved)how to define cors in free pascal
« Reply #25 on: March 31, 2025, 05:38:12 pm »
Thank you very much

 

TinyPortal © 2005-2018