出现400错误通常表示请求格式有问题或者服务端没有正确处理请求。以下是一些可能导致400错误的原因以及相应的
检查GraphQL查询是否正确: 确认你的mutation语法是否符合GraphQL规范。如果查询格式不正确,则可能会导致400错误。
检查请求body是否正确: 通过控制台验证并确认请求body的内容是否正确。如果数据格式不正确,则将触发400错误。
检查服务端是否正确处理请求: 检查服务端代码,确认服务端是否正确处理来自客户端的请求。如果服务端无法处理请求,则会触发400错误。
以下是一个示例代码,展示如何使用Apollo Client中的mutation并确认请求格式无误:
import { gql } from '@apollo/client';
const ADD_TODO = gql`
mutation addTodo($title: String!) {
addTodo(title: $title) {
id
title
completed
}
}
`;
const AddTodo = () => {
const [title, setTitle] = useState('');
const [addTodo] = useMutation(ADD_TODO, {
onCompleted(data) {
console.log('Todo added', data);
},
onError(error) {
console.error(error);
}
});
const onSubmit = (e) => {
e.preventDefault();
addTodo({
variables: { title }
});
setTitle('');
};
return (
);
};
在以上示例中,我们使用了一个mutation来添加一个todo项,确保mutation查询语法正确并且服务端对于该mutation进行处理的代码正确。