问题描述
谢谢!
我正在从WP Rest API中提取数据,并在本地计算机上启动地址为http:// localhost:8000的wordpress站点并到达http:// localhost:3000 / api上的graphqli游乐场时/ graphql并输入查询,可以得到预期的结果,并且可以在响应中愉快地使用数据,但是一旦将WP REST API地址更改为http://example.com/cms,我就会得到一个错误。唯一更改的是URL,因此我猜测它与CORS有关。
检查浏览器窗口中没有CORS错误,因此我可以排除CORS问题。奇怪的是,当我通过邮递员进行api调用时,我得到了我期望的响应,当我在浏览器中输入端点时,我得到了我期望的结果,当我使用端点来解析查询请求时,我得到了一个错误,所以我开始看标题,因为那是我唯一能看到的邮递员请求和正常浏览器请求之间的变化。对于本地wp安装@ localhost:8000,查看日志,我可以看到邮递员,浏览器和axios(在查询解析器中使用)发出的请求是在网络上运行的wp安装的另一面,日志显示请求从邮递员,从浏览器到api端点,而不是从graphql解析器。我该如何解决不使用解析程序的问题?
这是我的查询解析器
const resolvers = {
Query: {
pages: (_parent,_args,_context) => {
return axios.get(`${wpURL}/wp-json/wp/v2/pages`)
.then(res => res.data)
.catch(error => {
console.log("Response Status:",error.response.status);
console.log("Response Headers:",error.response.headers);
console.log("Response Data:",error.response.data);
});
}
}
}
graphqlserver:
import {ApolloServer} from 'apollo-server-micro'
import Cors from 'micro-cors'
import {schema} from './schema'
const cors = Cors()
const server = new ApolloServer({schema})
const handler = server.createHandler({path: '/api/graphql'})
export const config = {
api: {
bodyParser: false,}
}
export default cors(handler)
终端:
> next dev
ready - started server on http://localhost:3000
event - compiled successfully
event - build page: /api/graphql
wait - compiling...
event - build page: /api/graphql
event - compiled successfully
页面:
我在做什么错了?
解决方法
我发现它看起来好像端点graphql正在从中获取数据不是通过SSL来保护的,它甚至都不会要求数据