Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Javascript调用API_Javascript_Html - Fatal编程技术网

用Javascript调用API

用Javascript调用API,javascript,html,Javascript,Html,调用此api的正确方法是什么?api的url是: 我想读“高”值 var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ var myObj=JSON.parse(this.responseText); document.getElementById(“demo”).innerHTML=myObj.high; } }; open(“G

调用此api的正确方法是什么?api的url是:

我想读“高”值

var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ var myObj=JSON.parse(this.responseText); document.getElementById(“demo”).innerHTML=myObj.high; } }; open(“GET”https://www.bitstamp.net/api/ticker/“,对); xmlhttp.send();

我错过了什么?谢谢

向URL添加时间戳使其对我有效:

<p id="demo"></p>
<script>
    var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
            var myObj = JSON.parse(this.responseText);
            document.getElementById("demo").innerHTML = myObj.high;
        }
    };
    xmlhttp.open("GET", "https://www.bitstamp.net/api/ticker/?u" + new Date().getTime(), true);
    xmlhttp.send();
</script>

您得到的错误是什么?您发布的代码对我有用。您正在寻找优化的解决方案吗?控制台上有错误吗?大多数浏览器都不喜欢这样,
没有“访问控制允许源代码”
。我正在使用W3school代码查看器(),当我运行代码时,没有显示高值,它保持白色,就像没有显示一样不确定您使用的浏览器,但是请注意,您可能会受到
跨站点脚本XSS攻击
,…是的,这一改变起到了作用。介意解释一下为什么会这样吗?是的,这不是缓存问题。。它的bitstamp在使用查询参数时启用CORS。。非常奇怪,为什么没有..@Tomas Bond就不能启用它,我在直接使用XMLHttpRequest进行Ajax调用时多次发现这个问题(没有像JQuery这样的框架),我一直认为这是一个缓存问题,即浏览器没有真正调用服务,因为URL已经被缓存了。将时间作为参数添加始终会生成不同的URL,从而避免缓存问题,但Keith也有一点关于CORS,不确定为什么在将参数添加到请求时启用它。
<p id="demo"></p>
<script>
    var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
            var myObj = JSON.parse(this.responseText);
            document.getElementById("demo").innerHTML = myObj.high;
        }
    };
    xmlhttp.open("GET", "https://www.bitstamp.net/api/ticker/?u" + new Date().getTime(), true);
    xmlhttp.send();
</script>