在 wordpress api 中启用 CORS

Posted

技术标签:

【中文标题】在 wordpress api 中启用 CORS【英文标题】:Enable CORS in wordpress api 【发布时间】:2018-05-07 14:27:33 【问题描述】:

我想要一种干净的方式来为我的 wordpress 后端启用 CORS。许多帖子建议只将标头添加到 api 的代码中,但编辑 wordpress 核心是不行的,因为我正在使用 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.

【问题讨论】:

【参考方案1】:

您的客户端 javascript 正在尝试在请求上设置 Access-Control-Allow-Origin 标头。

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

这会触发 预检 请求,但您的服务器端代码仅设置为处理简单请求。

修复客户端 JS。

【讨论】:

你说得对,我实际上有一些样板代码设置了这个标题......非常感谢。

以上是关于在 wordpress api 中启用 CORS的主要内容,如果未能解决你的问题,请参考以下文章

在 wordpress 中启用 CORS

使用 WordPress REST API 删除媒体

WordPress acf-to-rest-api && Rest API

PHP 在WordPress博客中启用搜索结果

PHP 在论文主题中启用WordPress正文类功能

如何检查 WordPress 中是不是启用了 XML-RPC