CORS with Delphi MVC Framework



我在Delphi 11.2上测试TMS WEB Core 2和DMVC 3.2.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 ?

您的配置阻止客户端连接。

服务器名和端口都必须匹配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

最新更新