在javascript中显示api响应
Displaying api response in javascript
我正在制作一个带有一些硬币价值的仪表板(在本例中是比特币(BTC)和NLG)。我从bitstamp获得BTC的当前值,我想从Bittrex获得NLG到BTC的值。我做了以下页面:(你也可以在这里找到它:(我会在某个时候删除它)http://coin.hmrt.nl/)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Coin.hmrt.nl</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Coin.hmrt.nl</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="#NLG-BTC">NLG-BTC</a></li>
<li><a href="#NLG">NLG</a></li>
<li><a href="#BTC">BTC</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container" id="NLG-BTC">
<section>
<h2>NLG-BTC</h2>
<div class="row row-eq-height">
<div class = col-md-4>
<h4>Huidige waarden</h4>
<p class="BTC_EUR">BTC(€): </p>
<p class="greeting-content">NLG(€): </p>
<p class="NLG_BTC">NLG(BTC): </p>
</div>
<div class = col-md-4>
<p class="last-bid">The API result is </p>
<p>1</p>
</div>
<div class = col-md-4>
<img src="grafiek.jpg">
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
<script src="hello.js"></script>
<script src="get_values.js"></script>
<script src="get_values2.js"></script>
</body>
</html>
现在我将javascript分成两部分,因为bittrex api调用不起作用,它使bitstamp无法加载其值。这些是javascript,第一个可以工作。
$(document).ready(function() {
$.ajax({
url: "https://www.bitstamp.net/api/v2/ticker/btceur"
}).then(function(response_BTC_EUR) {
var BTC_EUR = response_BTC_EUR.last;
$('.BTC_EUR').append(BTC_EUR);
url: "http://rest-service.guides.spring.io/greeting"
}).then(function(data) {
$('.greeting-id').append(data.id);
$('.greeting-content').append(data.content);
});
});
,这个没有输出:
$(document).ready(function() {
$.ajax({
url: "https://bittrex.com/api/v1.1/public/getticker?market=BTC-NLG"
}).then(function(response_NLG_BTC) {
console.log(response_NLG_BTC)
var NLG_BTC = response_NLG_BTC
$('.NLG_BTC').append(NLG_BTC.result);
});
});
在Python中,我让所有的api都工作了,下面的代码可以工作:
requests.get('https://bittrex.com/api/v1.1/public/getticker?market=BTC-NLG').json()
它产生:
{'message': '',
'result': {'Ask': 1.1e-05, 'Bid': 1.099e-05, 'Last': 1.099e-05},
'success': True}
我错过了什么?我还发现调试非常困难或实际上不可能,因为我没有任何关于哪里出了问题的反馈。什么好主意吗?
Javascript可能不是最好的调试工具。在Firefox和Chrome中,您可以监控发送和接收的所有请求。这将让您看到所有的请求头,以及服务器确切发回的内容(如果有的话)。
在Firefox中,按ctrl - shift - k,然后单击网络选项卡,然后像往常一样加载页面。注意你想要的请求。当它出现时,点击它,所有的信息将显示在右边的一个小窗口中。
我的猜测是,某些东西是错误的查询字符串(如'?被自动逃避)。这将显示在"Params"选项卡中。
我认为你正在尝试做XMLHttpRequest到一个不同的域比你的页面上。因此浏览器会阻止它,因为出于安全原因,它通常允许来自同一来源的请求。
这可能有助于解决问题https://www.codeschool.com/discuss/t/how-to-solve-no-access-control-allow-origin-header-is-present-on-the-requested-resource-origin-null-is-therefore-not-allowed-access-in-angular-js/28989
尝试在请求中添加catch子句,看看是否会出现错误:
$(document).ready(function() {
$.ajax({
url: "https://bittrex.com/api/v1.1/public/getticker?market=BTC-NLG"
}).then(function(response_NLG_BTC) {
console.log(response_NLG_BTC)
var NLG_BTC = response_NLG_BTC
$('.NLG_BTC').append(NLG_BTC.result);
})
.catch(function(err) {
console.error(err);
})
});
- 使用javascript API响应内部服务器错误将曲目上传到SoundCloud
- 如何将Facebook Graph API响应存储为Javascript数组
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- 获取 API 响应对象并替换(映射)所有键
- $http.获取和$http.JSONP未能获得Google API响应
- 在 Angular2 和 ionic 中读取 API 响应
- 当react路由器更改时,我们可以取消api响应吗
- PHP应该压缩我的API响应
- 利用API响应实现站点自动化
- 使用多个 URL 时嵌入 API 响应 404
- 如何将 api 响应分配给变量
- 从谷歌 v3 API 响应中检索前两位数字
- 应用 API 响应转换的最佳位置
- FB.api 响应未定义
- 如何从 API 响应中提取部分 JSON
- 无法使用 js 类获取 FB.api 响应
- 从 JSON API 响应中获取值,将它们放入网页中
- 如何在 javascript alert中显示 instagram API 响应
- 我有一个API,我想从api响应中获取数据
- 使用 Javascript 从 API 响应中剥离 @