我想POST一个更新字段“name”的变异,它是JSONString . 当我这样做时,我得到了一个响应 - 400 BAD REQUEST,但是当我尝试其他突变(字段类型为String)时,它会变得平滑,结果正是我想要的 .
function updateUserData() {
var xhr = new XMLHttpRequest(),
token = "BTNsngsfgfstnrw64wNsrgnws"
var mutation = `mutation {
addPosition( input: {
name: "{\"pl\": \"Devlo\"}"
}) {
result {
name
}
}
}`;
$.ajax({
beforeSend: (xhr) => xhr.setRequestHeader('Authorization', 'Basic ' + token),
type: 'POST',
url: 'http://46.17.113.45/graphql',
data: JSON.stringify({ 'query': 'mutation { addPosition( input: { name: "{\\"p\\": \\"Develo\\"}" }) { result { name
contentType: 'application/json'
}).done(function(response) {
console.log(response)
});}
在GraphiQL中,突变效果很好 . 返回值正是查询中的确切内容 . JSONString和那些引号有问题,还是问题出在其他地方?令牌,类型,contentType很好 - 其他带有查询的POST或突变效果很好 . 我已经花了几个小时试图完成这项工作,但没有效果 .
解决方案我明白了 . 在引号之前应该有双斜杠而不是一个 .
1 回答
太棒了,你能找到你的错误 . 这可能是由于一些JSON解析错误引起的,因为粗略查询包含字符串化的JSON .
将来,为了提出更简单的请求,您可以将查询和变量作为单独的字段发送: