2014-01-15 19 views
0

我想提出一个XMLHttpRequest到BTC - E. API文档可以在这里看到:https://btc-e.com/api/documentation的XMLHttpRequest,SHA512和BTC - 电子

var apiKey; 
var apiSec; 
var response; 
var nonce; 
var sign; 

function signMessage() { 
    nonce = (new Date()).getTime().toString(); 
    var hash = CryptoJS.HmacSHA512("?method=getInfo&nonce=" + nonce, apiSec); 
    sign = hash.toString(CryptoJS.enc.Hex); 
} 

function getPrice() { 
var req = new XMLHttpRequest(); 
req.open("POST","https://btc-e.com/tapi", false); 
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
req.setRequestHeader("Key", apiKey); 
req.setRequestHeader("Sign", sign); 
req.send("method=getInfo&nonce=" + nonce); 
req.onload = function() { 
    response = JSON.parse(req.responseText); 
}; 
} 
signMessage(); 
getPrice(); 
console.log(responce); 

看来,散列做得正确,或者至少得到一个正确的期待弦回来。服务器响应:{“success”:0,“error”:“invalid nonce parameter; on key:0,you sent:1389814528941”}

已经挣扎了好几个小时,无法弄清楚什么是错的。

+0

该api是否支持CORS?你的网络检查员对这些请求说些什么,他们看起来像你期望的一样吗?为什么您的POST数据之前有问号? – Bergi

+0

我使用另一个站点(Bitstamp)以类似的方式完成了它,并且一切都很完美。问号是因为“按照HMAC-SHA512方法由密钥签名的Sign-POST数据(?param = val&param1 = val1);” – user2718351

回答