On Mon, 7 Nov 2022, duilio foschi wrote:

I fixed the code in Lazarus and got a client based on BufDataClient
that successfully talks with a restbridge server.

As a next step, I'd like to connect to the same server from a TWebForm
of TMS Web Core library.

Normally, TMS Web Core contains a dataset component that handles SQLDBRest
connections?.

I wrote it myself for them.


I started with a slow step. There is only a TWebHttpRequest in the
form (which has the same functions of a TFPHTTPClient) and it issues a
GET to URL
http://localhost:3000/metadata/?fmt=json&humanreadable=0

This command works ok in the windows client.

Here, I get the errors shown in pic
https://i.ibb.co/dpsjfQQ/1.jpg

The message (a CORS error) is attached below.

Aaaahhh... Welcome to CORS hell... :/


Weird enough, the message is there even after changing the server code
in this way:

original code:
  FDisp.DispatchOptions:=FDisp.DispatchOptions+[rdoCustomView,rdoHandleCORS];

new code
   FDisp.DispatchOptions:=FDisp.DispatchOptions+[rdoCustomView];

This is the exact opposite of what you should do.

The rdoHandleCORS option must be there, or CORS will not be handled at all.


Is there a way to tell the server to ignore CORS errors?


The CORS errors are from the browser, not from the server.


Or there a way to sweet-talk the server to accept the requests from a
TMS Web form? :)

Yes, you must add localhost as an allowed origin in CORSAllowedOrigins.

FDisp.CORSAllowedOrigins:='localhost:3000'

If you are not using authentication, as an alternative, you can try
FDisp.CORSAllowedOrigins:='*'

Michael.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to