我想要一个干净的方法为我的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.
答案 0 :(得分:1)
您的客户端JavaScript正在尝试在请求上设置Access-Control-Allow-Origin
标头。
这没有意义,因为它是响应头,而不是请求头。
这是触发预检请求,但您的服务器端代码仅设置为处理简单请求。
修复客户端JS。