【发布时间】:2019-07-20 07:17:50
【问题描述】:
我有一个调用 Wordpress v5 API 的 React 应用程序。
const api = `${WAPI}`;
const headers = {
'Content-Type': 'application/json'
} ;
fetch(api, {
headers: headers
})
.then(function(data){
console.log(data);
})
.then(this.handleposts)
.catch(err => console.log(err));
}
在我的开发工具控制台中返回此错误:
Access to fetch at 'http://XXX.XXX.XXX.XX/firstcivdivcareers/wp-json/wp/v2/posts/' from origin 'http://localhost:9000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
我曾经调用单个 Wordpress 站点 API,但现在它不起作用。我假设 Wordpress API 可以与用作第三方服务的跨域域调用一起使用。
我对主题的functions.php 添加了更改。当我在浏览器中访问我的站点并检查开发工具控制台中的标题时。我可以看到我用正确的标题发送了我的回复。但是,当我通过 JS 的 fetch 调用调用时,它的工作方式不同。
添加到functions.php的更改:
/**
* Only allow GET requests
*/
function add_cors_http_header(){
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: origin");
}
【问题讨论】:
标签: wordpress reactjs wordpress-theming fetch wordpress-rest-api