所以我想使用axios将一个对象作为参数传递给graphql服务器,下面是我的查询
const query = `
query SalesPropertySearch($source: Source!, $searchParameter: SearchParameter!) {
salesPropertySearch(
source: $source,
searchParameter: $searchParameter
) {
edges {
id
score
projectName
}
}
}`
然后我会提出这样的请求:
const data = await lastValueFrom(
this.httpService
.post<GQLResponse<SalesPropertyApiResult>>('graphql', { query, variables: dto })
.pipe(map(res => res.data.data.salesPropertySearch))
)
dto对象类似于:
{
source: 'CONDOMINIUM',
searchParameter:{
buildingNumber: '10',
page: 1,
perPageSize: 10
}
}
所以它是有效的,但是我仍然得到一个坏的请求错误,看起来axios在searchParameter中传递对象的方式是错误的,有什么方法可以修复这个问题吗?
如果我只传递这样的查询,也会发生同样的情况:
query { rentalPropertySearch(source:${dto.source}, searchParameter:${JSON.stringify(dto.searchParameter)}){
edges {
id
score
}
}
}
`
在这种情况下,axios添加\字符,
请建议如何修复此问题或如何正确传递对象
1条答案
按热度按时间h43kikqp1#
在此发布更新:问题在于错误的查询参数(区分大小写的值),没有实际的axios问题