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