![](/img/trans.png)
[英]EDITED: Can't send POST request to Express server with Fetch API, keep getting JSON.parse error
[英]JSON parse error when sending POST request using JavaScript's Fetch API
當我使用 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
引起的。
有誰知道這個錯誤到底與什么有關?
JSON 以 { 或 [ 或正常的 ascii 字符開頭。 你試圖做一些混亂,所以 JSON 解析器很困惑。 沒有有效的 JSON 不好玩。 在事情發生之前向我們展示您發送或收到的內容的前幾個字符也會很有幫助。 根據 JS 文檔,JSON 字符串必須是正確的。 如果您嘗試在數據集中發送像 ]}\,'" 這樣的特殊字符,它也會將其混淆。在這種情況下,您必須轉義這些字符。如果沒有任何幫助,可以制作一個 base64 字符串值。我只能猜測你沒有逃脫“\”字符(應該看起來像\ \轉義)還是你的意思是'\object\'?當你展示它時這看起來有點奇怪(錯誤的'position在開始)。一些在線JSON解碼器也提供有關錯誤的更多有用信息。無論如何,錯誤都在 JSON 字符串內。如果某些“標題”出錯 - 不會返回任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.