我想做我自己的比特币兑换。检查货币汇率的链接是:
因此,我做了一个HTML表单,只有一个输入,用户将给我一个美元的价值,他想要检查多少个BTC的时间。
<form class="searchform" name="BTCValueForm" action="" method="POST">
U$<input type="text" name="usd" id="usd" maxlength="5">
- BTC = <p id="btcvalue"> </p>
<p> <input name="Exchange" type="submit" class="button" onclick="return BitcoinRate(BTCValueForm)" value="Check"> </p>
</form>
好的,该按钮调用javascript函数BitcoinRate,即:
function BitcoinRate(BTCValueForm)
{
load('https://blockchain.info/tobtc?currency=USD&value='+BTCValueForm.usd.value,'BitcoinRate');
}
功能负载是:
function load(url,reason) {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var Answer = xmlhttp.responseText;
if (reason == 'BitcoinRate') {
document.getElementById('btcvalue').innerHTML = Answer;
}
xmlhttp.open('GET', url, true);
xmlhttp.send();
}
它应该从API中得到答案,并在表单中插入"btcvalue“一段。但是查看Chrome的调试器,我发现GET请求在启动之前就被取消了。这里发生了什么事?有什么线索吗?
发布于 2020-10-06 05:47:56
我将推荐CurrencyFreaks API,因为您可以使用与各种编程语言兼容的世界179种货币进行比特币转换,例如Shell、Node.js、Java、Python、PHP、Ruby、C#、C、Go、Swift。
在这里我使用JavaScript:给出了比特币转换器端点
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.currencyfreaks.com/latest/convert
?apikey=YOUR_APIKEY
&from=USD&to=BTC
&amount=10000");
xhr.send();
JSON响应如下:
{
"date": "2020-10-06 05:44:00+00",
"current_rates": {
"USD": "1.0",
"BTC": "0.00009296030223253462"
},
"converted_amount": "0.9296030223253462",
"query": {
"given_amount": "10000.0",
"from": "USD",
"to": "BTC"
}
}
我希望这将是BTC转换器最简单的解决方案。
发布于 2018-08-23 11:06:31
可能是BlockChain不允许他们的CORS(跨源资源共享)。我建议你使用CryptoCompare API,它是免费的。我下面的回答可能会帮助你找到你想要的东西。
<form class="searchform" name="BTCValueForm" action="" method="POST">
- U$<input type="text" name="usd" id="usd" maxlength="5">
- BTC = <p id="btcvalue"> </p>
<p> <input name="Exchange" type="submit" class="button" onclick="return
BitcoinRate()" value="Check"> </p>
</form>
我将为Xml使用加密比较API,以获得btc的价格。
function BitcoinRate(){
var btc = document.querySelector('#btcvalue'),
amount = document.querySelector('#usd').value
var XHR = new XMLHttpRequest();
XHR.onreadystatechange = function(){
if(XHR.readyState == 4 && XHR.status == 200){
console.log(data)
var data = JSON.parse(XHR.responseText)
// Divide the given amount with the current price of one BTC to USD = BTC amount
let BTC_amount = amount / data.USD
// You can round up the BTC_amount to your desired value
let final_value = BTC_amount.toFixed(3);
// Equate the final_value to the btc var, to display it
btc.innerText = final_value;
} else {
alert('something went wrong')
}
}
// Note: here I used BTC to USD, but you can use a different coin or fiat currency supported by CC API
var url = 'https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD';
XHR.open('GET', url);
XHR.send();
}
使用JQuery和keypress(),它比XML请求(Dry)更干净
var amount = jQuery('#usd').val(),
btc = jQuery('#btcvalue')
jQuery('#usd').keypress(function(event){
if ( event.which == 13 ) {
event.preventDefault();
}
$.get("https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD",function(data){
let BTC_amount = amount / data["USD"],
final_value = BTC_amount.toFixed(3)
btc.text(final_value)
});
})
https://stackoverflow.com/questions/23984019
复制相似问题