XMLHttpRequest - 解析属性 - JS

时间:2017-05-23 15:16:34

标签: javascript xmlhttprequest

首先,这是一个完整的新手问题。我不太了解自己在做什么。

我有一个API,可以从JustGiving返回前10名筹款人。我可以显示XML信息,但它只是将所有内容一起转储。这就是我到目前为止所拥有的JS:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.justgiving.com/{appid}/v1/event/{eventID}/leaderboard?currency=gbp/", true);
xhr.responseJSON;
xhr.send();

xhr.onreadystatechange = processRequest;

function processRequest(e) {
    if (xhr.readyState == 4 && xhr.status == 200) {
      document.write(xhr.responseText);
    }
}

我一直在寻找几个小时以不同的方式将这些信息输出到我可以在网页上操作的东西上。可以包含在div中的东西。

非常肯定这是我需要修改......

document.write(xhr.responseText);

请帮助或指出我正确的方向。或者,如果我完全朝错误的方向走,请告诉我。可能已经有了一个解决方案,但由于我的知识非常有限,我可能会写错我的所有搜索。

API的文档是https://api.justgiving.com/docs/resources/v1/Leaderboard/GetEventLeaderboard

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

因为你在JS,所以我尽量避免使用XML。

如果您在请求中包含相应的标头,JustGiving API也应该能够提供JSON响应。

类似的东西:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.justgiving.com/{appid}/v1/event/{eventID}/leaderboard?currency=gbp/", true);

// Add accept header to indicate you want JSON
xhr.setRequestHeader("Accept", "application/json");
xhr.send();

xhr.onreadystatechange = processRequest;

function processRequest(e) {
    if (xhr.readyState == 4 && xhr.status == 200) {

      // Parse the JSON in the response
      document.write(JSON.parse(xhr.responseText));
    }
}