ESLint 报错:Unexpected token < in JSON at position 0

阅读时长 3 分钟读完

在前端开发中,我们经常使用 ESLint 进行代码检查。然而,有时在代码检查过程中,我们可能会遇到类似于 "Unexpected token < in JSON at position 0" 这样的报错,这篇文章将会详细介绍此问题的原因和解决方案。

问题的原因

这个错误的出现通常是由于返回的数据格式不是 JSON 或者不符合 JSON 的格式要求。这种情况通常发生在网络请求中,当后端返回了一个 HTML 或者其他非 JSON 的格式时,前端就会出现这个错误。

例如,我们在以下代码中发起一个简单的 GET 请求:

如果在我们的请求中返回的数据不是 JSON 格式,那么这个代码就会失败并出现上述的错误。

解决方案

要解决这个问题,我们需要检查请求返回的数据是否符合 JSON 格式,如果符合就可以将其解析成一个 JavaScript 对象。

在上面这个例子中,为了解决这个问题,我们需要在 .then(response => response.json()) 的后面添加错误处理。在捕获错误之前,我们可以先检查一下响应类型是否为 "application/json"。

以下是我们可以使用的改进版代码:

-- -------------------- ---- -------
-------------------------------------
  -------------- -- -
    ----- ----------- - -------------------------------------
    -- ------------ -- ----------------------------------------- -
      ------ ----------------
    - ---- -
      ----- --- ------------------- -- --- -- ---- ---------
    -
  --
  ---------- -- ------------------
  ------------ -- ----------------------

这个代码在获取响应之前,优先检查了响应类型的 MIME 类型是否为 "application/json",如果是,那么就解析成 JSON,否则抛出一个新的 TypeError 错误。

总结

ESLint 报错 "Unexpected token < in JSON at position 0" 通常是由于网络请求返回的不是 JSON 格式。解决这个问题的方法是在解析响应的时候,先判断响应类型是否为 "application/json",这样可以确保数据可以被正确解析成 JSON 格式。

同时,这个错误也提醒我们,开发过程中,需要在设计 API 接口时,要考虑相关数据的格式要求,避免无意中返回了不符合 JSON 格式要求的数据。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64827b7248841e98941e0db8

纠错
反馈