[英]Next.js:FetchError: invalid json response body Unexpected token < in JSON at position 0
[英]Node FetchError: invalid json response body - unexpected token < in JSON
當我嘗試從服務器路由獲取響應時,出現以下錯誤: FetchError: invalid json response body - unexpected token < in JSON
我認為問題是當我執行response.json()
?
當我使用Postman到達同一端點時,我得到了想要的響應。 這是怎么回事
注意:我的api令牌可以公開使用
server.js
const express = require('express')
const path = require('path')
const bodyParser = require('body-parser')
const fetch = require('node-fetch')
const app = express()
const port = process.env.PORT || 5000
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
const TRANSLINK_TOKEN = 'j2bXKzENILvyoxlZ399I'
const TRANSLINK_URL = 'http://api.translink.ca/rttiapi/v1/buses?apikey='
// API routes
app.get('/buses/location', (req, res) => {
const apiURL = `${TRANSLINK_URL}${TRANSLINK_TOKEN}`
console.log(apiURL)
fetch(apiURL)
.then(response => {
if (response.ok) {
console.log("response ok")
response.json()
.then((data) => {
res.json(data)
})
}
else {
res.sendStatus(response.status)
}
})
.catch(error => {
console.log(error)
alert(error.message)
})
})
app.listen(port, () => console.log(`Listening on port ${port}`))
您的API返回XML而不是json,請確保apiURL返回有效的json對象
要檢查響應,請將console.log(data)
放在res.json(data)
之前
您可以使用XML2JSON包將響應轉換為json格式,也可以使用res.send(data)
照原樣檢索xml響應
fetch(apiURL)
.then(response => {
if (response.ok) {
console.log("response ok");
console.log(response.body);
// Add XML2JSON to convert body
res.send(response.body);
}
else {
res.sendStatus(response.status)
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.