仅使用js

时间:2017-10-16 12:55:55

标签: javascript html api request

我是js和API的新手,

我写了一些代码,假设要问2个网站的一些数据,然后我只拿一部分结果并将其添加到我的html页面。

我正在尝试使用第一个网站,因为当我有第一个网站时,很容易让它在第二个网站上运行。

我想只使用js而不是php或其他语言。

目前暂不行......

所以这是我的js

好的,如果你现在才来这里,

我的代码已经使用以下Justin和Aashah的2个答案进行了更新,现在问题是浏览器说为了获取cors,我需要一个http或https,并说有一个问题[对象%20Object],所以仍然没有数据显示,如果有人有解决方案,请帮助我们:)

var urlbitfinex = "https://api.bitfinex.com/v1";
var urlkraken = "https://api.kraken.com/0/public/Ticker?pair=";
var resultBitfinex;

//request bitfinex price
request.get(urlbitfinex + "/pubticker/btcusd",
  resultBitfinex = function(error, response, body) {
    console.log(body)
    return body;
  });

//request kraken price
request.get(urlkraken + "xbteur",
  function(error, response, body) {
    console.log(body);
  });

//Pushing the result to the html
var price_USD = document.getElementById('price-usd');
var USDPrice = '<p>USDEUR Price:' + resultBitfinex.ask '</p>';
price_USD.innerHTML += USDPrice;

我的HTML

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Test</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <div id="price-usd">
  </div>
  <script src="getPrices.js"></script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您必须在回调中处理UI更改:

fetch({ url: urlkraken + "/pubticker/btcusd", cors: true })
.then(res => res.json())
.then(res => {
  const price_USD = document.querySelector('#price-usd');
  const USDPrice = '<p>USDEUR Price:' + res.ask + '</p>';
  price_USD.innerHTML += USDPrice;
})
.catch(err => console.log(err));

答案 1 :(得分:0)

你并没有真正做出任何回应。

如果您不必支持IE,则可以使用fetch。以下是一个例子: How to get the response of XMLHttpRequest?

var url = "https://stackoverflow.com"; // Change this to your URL
fetch(url)
    .then(function(response) {
          if(response.ok) { // Check if response went through
              response.json().then(function(data) { 
                  var price_USD = document.getElementById('price-usd');
                  var USDPrice = '<p>USDEUR Price:' + data.something + '</p>';
                  price_USD.innerHTML += USDPrice;
              });
          } else { // Response wasn't ok. Check dev tools
              console.log("response failed?");
          }
    });

有关Fetch here的更多信息。