使用JavaScript的Fetch API发送POST请求时,JSON解析错误

时间:2019-09-19 17:19:14

标签: javascript rest request fetch

当我使用fetch发送以下POST请求时:

                fetch(requestUrl, {
                    method: 'POST',
                    headers: {
                        'id': 'my_id',
                        'secret': 'my_secret',
                        'Content-Type': 'application/json'
                    },
                    body: {
                      'username': '123',
                      'password': '456'
                    }
                })
                .then(function(response) {
                    return response.json();
                })
                .then(function(data) {
                    console.log(data);
                })
                .catch((error) => {
                    console.log(error);

                })

我收到以下错误:

   'JSON parse error: Unrecognized token \'object\': was expecting (\'true\', \'false\' or \'null\'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'object\': was expecting (\'true\', \'false\' or \'null\')\n at [Source: java.io.PushbackInputStream@f402d7e; line: 1, column: 9]',

我尝试进行故障排除,并且该错误是由我尝试与请求一起发送的headersbody引起的。

有人知道该错误到底与什么有关吗?

1 个答案:

答案 0 :(得分:0)

JSON以{或[或普通的ascii字符开头。您尝试执行某种混乱操作,因此JSON解析器感到困惑。没有有效的JSON就没有乐趣。向我们显示事物的前几个字符,这是您发送或接收的内容,然后才发生的。根据JS文档,JSON字符串必须正确。如果您尝试在数据集中发送特殊字符,如]} \,'“,也会将其混合在一起。在这种情况下,您必须转义这些字符。如果没有帮助使这些值成为base64字符串,我只能猜测您没有用“ \”字符转义(看起来像是\\转义)还是“ \ object \”?当您显示时看起来有点奇怪(开始时位置错误)。一些在线JSON解码器提供有关错误的更多有用信息。该错误无论如何都在JSON字符串内。如果某些“标头”错误,则不会返回任何内容。