首页 > 解决方案 > JSON 解析错误:window.onload() 中多个 HTTP 请求的意外标识符“未定义”

问题描述

我正在发出获取请求并将其显示在页面上,但是对于 jsondataComp 变量,我不断收到此错误。

当我使用 2 个不同的 HTTP 对象时,我曾经遇到与内部服务器错误相同的错误,所以我现在只使用 1 个 http 对象。

欢迎任何关于重构的建议。谢谢

window.onload = function(){

  url='http://127.0.0.1:5000//company/lines/'+localStorage.getItem("ponumber");
  url2='http://127.0.0.1:5000//company/qty/'+localStorage.getItem("ponumber")

var Http = new XMLHttpRequest();
Http.open("GET", url);
Http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
Http.send();

var dataComp;
var jsondataComp;
var dataComp2;
var jsondataComp2;

Http.onreadystatechange = (e) => {
   dataComp =Http.responseText;
}

//http request to get parts available for each part in each line:

Http.open("GET", url2);
Http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
Http.send();

Http.onreadystatechange = (e) => {
  dataComp2 =Http.responseText;
}


  jsondataComp = JSON.parse(dataComp);
  jsondataComp2 = JSON.parse(dataComp2);

  var table = document.getElementById('table1');
  var count = 0;
  var tr = document.createElement('tr');

    jsondataComp.forEach(function(object) {
   
    count++;
    tr.innerHTML = '<td>' + count + '</td>' + 
    '<td>' + object.poNo_002 + '</td>' +
    '<td>' + object.lineNo_002+ '</td>'+
    '<td>' + object.linePrice_002 + '</td>' +
    '<td>' + object.partNo_002 + '</td>' +
    '<td>' + object.linesQty_002 + '</td>'

  });


  //function display available quantity of each part in lines

  jsondataComp2.forEach(function(object) {
    tr.innerHTML+= '<td>' + object.qty_002 + '</td>' 

 });

  table.appendChild(tr);
        

}

标签: javascripthtmlhttp

解决方案


推荐阅读