【问题标题】:SyntaxError: Unexpected token < in JSON at positionSyntaxError:意外的标记 < 在 JSON 中的位置
【发布时间】:2018-10-28 15:22:46
【问题描述】:

我正在尝试在我的反应应用程序中创建下拉组件。 我的反应如下:

 componentDidMount() {
      let initialBrands = [];
      fetch('http://localhost:3000/brands').then((response) => {
      return response.json();
    })
    .then(data => {
      let brandFromApi = data.map(brand => { return {value: brand, display: brand} })
      this.setState({ brands: [{value: '', display: '(Select your favourite brand)'}].concat(brandFromApi) });
    }).catch(error => {
      console.log(error);
    });
}

但是在编译页面时出现以下错误:

SyntaxError: Unexpected token < in JSON at position 0
    at App.js:82

除了上述之外,我不能有任何其他错误。 但是,我的下拉列表未填充。 任何人,请告诉我问题出在哪里?

【问题讨论】:

  • 使用浏览器的“网络”工具查看HTTP请求的实际内容是什么。
  • 您可能收到的是 HTML 格式的错误消息,而不是您期望的 JSON
  • 我只能在控制台中看到这个错误。
  • 如果你在控制台打印这个:console.log('data: ' + JSON.stringify(data));console.log('type of data: ' + typeof data);let brandFromApi = ... 之前,它会显示什么?
  • 检查您的 App.js 代码,第 82 行,如错误所示...如果您发布整个代码会很有帮助,但我和@Bergi 有相同的想法

标签: javascript reactjs spring-boot


【解决方案1】:

我怀疑您从服务器收到了HTML(或XML),但您试图将其解析为JSON,这导致了错误。还要检查 Chrome 开发工具中的“网络”选项卡以查看服务器响应的内容。

尝试通过浏览器或邮递员点击 URL 以检查您是否真的得到了有效的 JSON 响应。

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 2019-04-24
    相关资源
    最近更新 更多