我正在测试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呢?
1条答案
按热度按时间piah890a1#
您的配置阻止客户端连接。
服务器名称和端口都必须与CORS规则匹配。要解决此问题,请将CORS标头更改为匹配的值。
这可能是
或
参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS