外部无法访问JSON数据,该函数旨在将输入数据与json进行比较,然后输出

时间:2019-02-18 15:45:05

标签: javascript json ajax

问题在于无法在calculateInterest函数中访问json数据,并且没有输出。

这是显示的错误:

  

未捕获的ReferenceError:未定义jsonResponse       在calculateInterest(script.js:36)       在XMLHttpRequest.request.onload(script.js:29)

此应用程序的重点是根据输入的数字输出年利率。所有这些都是由json数据决定的,该数据应将本金值与json值进行比较,然后每年确定利息。

这里是项目的链接。 https://github.com/BKwingwa/Interestcalculator/tree/master/InterestCalculator3

针对类似问题的所有修复程序均使用jQuery,并且仅允许我在此项目中使用纯JavaScript,因为老师的意图是在没有任何框架的情况下学习。

我已经尝试了基于w3schools的XMLHttpRequest,然后尝试在响应中加载函数,并尝试使用基于this project的XMLHttpRequest

即使在尝试在这两个不同的xmlhttprequests中都键入calculateInterest(jsonResponse)时,我似乎仍然无法在函数中获取json数据。

window.onload = function()
{
    var btn = document.getElementById('btnJson').addEventListener('click', loadJson);

    var principal = document.getElementById('principal').value;
}

// -----------------------------此应用程序的目的说明------- ----------------------

///应该根据输入中的数字来引起兴趣的是HTML。 // JSON是每年利息的决定者。每年的利息意在作为产出。

function loadJson()
{


    var requestURL = 'interest.json';

    var request = new XMLHttpRequest();

    request.open('GET', requestURL);

    request.responseType = 'json';
    request.send();


    request.onload = function()
    {
        var jsonResponse = request.response;
        calculateInterest(jsonResponse);
    }



    function calculateInterest()
    {
        if (principal >= jsonResponse[0].from && principal <= jsonResponse[0].up_to)
        {
         //  return document.getElementById('paragraph').innerHTML = jsonResponse[0].interest;
         console.log(jsonResponse[0].interest);
        }

        else if (principal >= jsonResponse[1].from && principal <= jsonResponse[1].up_to)
        {
         //  return document.getElementById('paragraph').innerHTML = jsonResponse[1].interest;
         console.log(jsonResponse[1].interest);
        }


    }

}

//var btn = document.getElementById('btnJSON').addEventListener('click', loadJson);

预期结果: 取决于输入中的数字,有趣的是应该在HTML中给出。 JSON是每年利息的决定者。每年的利息意在作为产出。

当前,即使JSON语法似乎正确,computeInterest函数也根本无法正常工作,因为它没有在段落元素中的HTML上输出感兴趣的内容。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

此问题现已修复。这是脚本完成后的外观链接。我已添加评论,以便对学习感兴趣的人更容易理解。我还注释掉了一些旧的东西,所以您可以看到一些被替换的东西。

链接到Github上的更新文件:https://github.com/BKwingwa/Interestcalculator/blob/master/updatedscript