基于 Delphi MVC框架的CORS系统

jbose2ul  于 2023-01-20  发布在  其他
关注(0)|答案(1)|浏览(146)

我正在测试TMS WEB核心2和DMVC 3.2.2(最新)的 Delphi 11.2由我的测试机本地。
我已经创建了一个简单的DMVC服务器与所有默认的设置通过向导没有什么花哨,除了添加CORS选项。
我已经创建了一个TMS Web核心项目,其中包含所有默认设置以及WebHttpRequest和WebMemo组件。
我运行了DMVC服务器,可以在浏览器上得到美化的结果。
我运行了TMS Web核心项目,使用
WebHttpRequest是这样的:

WebHttpRequest1.URL := 'http://localhost:8080/api/test';

WebHttpRequest1.Execute(
          procedure(AResponse: string; AReq: TJSXMLHttpRequest)
          begin        
             WebMemo1.Lines.Add(AResponse);
          end
      );

但是,我得到了这个错误:

ERROR
HTTP request error @http://localhost:8080/api/test | fMessage::HTTP request error @http://localhost:8080/api/test fHelpContext::0
at http://localhost:8000/Project1/Project1.js [263:50]

浏览器开发者控制台显示:

Access to XMLHttpRequest at 'localhost:8080/api/test' from origin 'localhost:8000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'localhost:8080' that is not equal to the supplied origin.

我想从客户端向服务器发送一个请求,并在WebMemo中获得响应。
我在线检查了一下,发现这是一个后端问题,有人说这与CORS有关,那么我如何使用DMVC在服务器端启用CORS呢?

piah890a

piah890a1#

您的配置阻止客户端连接。
服务器名称和端口都必须与CORS规则匹配。要解决此问题,请将CORS标头更改为匹配的值。
这可能是

Access-Control-Allow-Origin: http://localhost

Access-Control-Allow-Origin: http://localhost:8000

参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

相关问题