获取错误:位于以下位置的 JSON 响应正文无效 >原因:在位置 0 的 JSON 中出现意外的令牌<



我正在尝试从OpenSea API获取数据,但不断收到以下错误:

FetchError:处的json响应体无效https://api.opensea.io/api/v1/assets?format=json&order_direction=desc&所有者=0x0f91b5a27c51dcad415eafb190e8235e987dccb原因:意外的令牌<在位置0 的JSON中

这是我当前的代码:

export async function getServerSideProps() {
const res = await fetch(`https://api.opensea.io/api/v1/assets?format=json&order_direction=desc&owner=0xc3b9d43afbb3dcc92e19703480f37070692494e1`)
const data = await res.json()
return { props: { data } }
}
const Page = ({data}) => {
return (
<>
{data.assets.map(asset => (
<p>{asset.id}</p>
))}
</>
)
}
export default Page

不幸的是,opensea目前不允许这样的请求。

您得到的HTML响应是403错误(Forbidden(,而不是json。

类似的问题如下:请求opensea api失败

由于得到的是HTML响应而不是JSON,因此会触发此错误。如果你从浏览器发出请求,你会得到成功的响应,但为什么你会在通过服务器端发出请求时出错?我认为这是因为服务器端请求中缺少一个标头。尝试使用fetch.text()而不是fetch.json()获取HTML,然后查找错误或正在获取的页面以及浏览器和服务器端标头之间的差异。

最新更新