是否可以在graphql中传递body查询中的数据?喜欢这个
var name = formData.get('name');
var email = formData.get('email');
var message = formData.get('message');
const resp = await fetch('/graphql', {
method: 'post',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: '{createPost (name: '+ name +' , email: '+ email +' , message: '+ message +') {id, statut}}',
}),
credentials: 'include',
});
const { data } = await resp.json();
if (!data || !data.createPost) throw new Error('Error');
console.log(data.createPost)
在查询行中,我想传递从提交表单中获取的所有var。 当我尝试这个时,我收到了这个错误
{
"errors": [
{
"message": "Syntax Error GraphQL request (1:29) Expected :, found Name \"email\"\n\n1: {createPost(name: John Doe , email: JD@test.com , message: blablabla) {id, statut}}\n ^\n",
"locations": [
{
"line": 1,
"column": 29
}
]
}
]
}
感谢您的帮助
答案 0 :(得分:3)
使用variables撰写查询,避免构建字符串。你可以免费获得类型检查!
我并不精通javascript,但我相信这会奏效:
var name = formData.get('name');
var email = formData.get('email');
var message = formData.get('message');
const resp = await fetch('/graphql', {
method: 'post',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: 'query Q($name: String, $email: String, $message: String){createPost (name: $name, email: $email, message: $message) {id, statut}}',
variables: {
name: name,
email: email,
message: message
}
}),
credentials: 'include',
});
const { data } = await resp.json();
if (!data || !data.createPost) throw new Error('Erreur sur l`envoi du message !');
console.log(data.createPost)
答案 1 :(得分:0)
这对我有用;
def PrintImage(request,std_id):
response = HttpResponse(content_type='application/pdf')
doc = SimpleDocTemplate(response,topMargin=2)
doc.pagesize = landscape(A6)
elements = []
I = Image('http://demoschoolzen.educationzen.com/images/tia.png')
I.drawHeight = 0.7*inch
I.drawWidth = 0.7*inch
elements.append(I)
doc.build(elements)
return response