在 wordpress 中启用 CORS api

Enable CORS in wordpress api

我想要一种干净的方式来为我的 wordpress 后端启用 CORS。许多帖子建议只将 header 添加到 api 的代码中,但编辑 wordpress 核心是 no-go 并且无论如何都不适用于我的设置,因为我正在使用 docker.

我试过像这样写一个插件:

add_filter( 'wp_headers', array( 'send_cors_headers' ), 11, 1 );
function send_cors_headers( $headers ) {
        $headers['Access-Control-Allow-Origin'] = '*';
    return $headers;
}

但它似乎什么也没做,因为我仍然收到以下错误:

Failed to load http://localhost/wp-json/wp/v2/posts: Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.

您的 client-side JavaScript 正在尝试根据请求设置 Access-Control-Allow-Origin header。

这没有意义,因为它是响应 header,而不是请求 header。

这会触发 preflighted 请求,但您的 server-side 代码仅设置为处理简单请求。

修复 client-side JS。