【问题标题】:Processing json object through javascript with react通过javascript处理json对象和react
【发布时间】:2017-04-17 08:59:58
【问题描述】:

所以我正在尝试构建一个应用程序。我有一个 Java API,它将数据库中的数据作为 json 对象提供。我想通过一个使用 javascript 的 html 网站并对可视化做出反应。我将这段代码作为我的 javascript 代码开始

const url = 'localhost:8080/getcomments?testcaseid=1';
fetch(url)
    .then(response => response.json())
    .then(data => {
      var rootElement =
        React.createElement('div', {},
          React.createElement('h1', {}, "test"),
          React.createElement('ul', {},
            React.createElement('li', {},
              React.createElement('h2', {}, data.comment)
            )
          )
        )
     ReactDOM.render(rootElement, document.getElementById('react-app'))
    });

在浏览器中运行时返回的url

[{"id":50,"testcaseId":1,"userId":1,"comment":"dit is voor de eerste testcase"}]

但是当我使用 html 页面运行它时,我只是得到一个空白页面。然后我认为这可能是反应代码并将data.comment更改为“hello”,但也没有返回。当我将反应片段复制到 fetch 之外时,我得到了一些回报。此外,当我运行 html 页面时,我的 Java API 上没有任何响应。但是当我运行 url 时,我得到了很多响应。 我做错了什么?

【问题讨论】:

  • 使 rootElement 全局化?它在匿名函数内部...添加 var rootElement; 到第一行删除另一个 var...
  • 我试过了,但我的 API 没有任何反应?
  • 它似乎从来没有进入函数本身

标签: javascript java html json reactjs


【解决方案1】:

您可以先尝试调试响应。

试试

.then((response) => {
   var parseResult = response.json();
   console.log(parseResult);
   return parseResult;
 })

先确保json数据正确,然后才能调试react代码。

【讨论】:

  • 我这样做了,在控制台中我得到了控制台中的下一个错误“index.html:1 Fetch API cannot load localhost:8080/getcomments?testcaseid=1. No 'Access-Control-Allow-Origin' header is present在请求的资源上。因此,不允许访问 Origin 'null'。如果不透明的响应满足您的需求,请将请求的模式设置为 'no-cors' 以获取禁用 CORS 的资源。"
  • 通过 Chrome 中的插件实现了这一点。我看到了我的对象,但我如何获得相同的对象?
  • CORS 问题。您是从其他域请求吗?尝试在请求上添加标头以允许跨域请求。
  • 我只是在本地工作。以及如何添加标题?
猜你喜欢
  • 1970-01-01
  • 2015-07-06
  • 2023-04-06
  • 2016-03-20
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
相关资源
最近更新 更多