我试图在带有fetch api的react应用程序上使用graphbrainz库,但无论我如何格式化请求正文,此错误显示:
badrequesterror:必须提供查询字符串。在graphql中间件(c:\users\user\desktop\project\node\u modules\express graphql\index.js:76:44)上,在ProcessTicks和Rejections(internal/process/task\u queues.js:95:5)上
电话是这样打的:
let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
const raw = "{ \"query\": \"{ lookup { releaseGroup(mbid: \\\"99599db8-0e36-4a93-b0e8-350e9d7502a9\\\") { title } }}\"}";
const requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow',
mode: 'no-cors'
};
fetch("http://localhost:3000", requestOptions)
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.log('error', error));
我也试着给 Postman 和curl打过同样的电话,效果很好。
graphbrainz示例正在作为独立节点服务器运行。
有谁能指导我如何进行这项工作,或者我做错了什么?我已经用尽了几乎所有的stackoverflow问题和github线程。我认为这一定是ExpressGraphQL服务器上的bodyparser造成的,但我不知道如何更改/修改它,因为它来自我正在使用的包。
2条答案
按热度按时间zqry0prt1#
我认为您可能错误地转义了查询中的内部引号。试着替换
\"99599db8-0e36-4a93-b0e8-350e9d7502a9\"
具有\\\"99599db8-0e36-4a93-b0e8-350e9d7502a9\\\"
.qyuhtwio2#
你能试着在发送之前把你的身体有效载荷串起来吗。
这样做将使您的负载严格化为