如何为 Catalyst 启用 CORS

How to enable CORS for Catalyst

有一个生成 JSON 的 Perl Catalyst 应用程序,我需要在由 Apache 服务器提供服务的 HTML 页面中使用 jQuery 读取 JSON 内容. Catalyst 和 Apache 这两个应用程序 运行 在同一台主机上。

当我从 Apache 访问 Catalyst URL 时出现错误

Access to XMLHttpRequest at 'http://localhost:3000/abc/json_list' from origin 'http://localhost:8888' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

因为我在很多话题上都红了,所以必须设置一个header(或更多)。在这种情况下,必须设置催化剂,但我不知道如何设置。

有什么提示吗?

Catalyst 允许您使用 the header method on the response object.

设置响应 headers
$c->res->header( "Access-Control-Allow-Origin" => "http://localhost:8888" );

如果您有多个端点需要通过 CORS 提供权限,请考虑使用控制器的 sub autousing existing middleware