Dojo中跨域获取新浪股票接口返回的数据(练习)
首先,配置好环境,不罗嗦了,然后,使用request中的script模块中的方法,获取代码地址为http://hq.sinajs.cn/list=sh000001,核心代码如下:
1 on(dom.byId("clickToShowCode"),"click",function(){ 2 var stockCode = dom.byId("stockNo").value; 3 console.log(stockCode); 4 var url = "http://hq.sinajs.cn/list=" + stockCode; 5 script.get(url,{ 6 // jsonp: "callback" 7 }).then(function(data){ 8 //console.log(hq_str_sh000001); 9 dom.byId("showData").innerHTML = eval("hq_str_"+stockCode); 10 //console.log(eval("hq_str_"+stockCode).constructor);
//判断一个给定变量的类型可以使用constructor属性 11 },function(err){ 12 console.log(err); 13 }); 14 });
这里主要使用了dojo/request/script这个模块,下面给出一个相关的简单示例:
1 require([ 2 "dojo/request/script", 3 "dojo/dom", 4 "dojo/dom-construct", 5 "dojo/json", 6 "dojo/on", 7 "dojo/domReady!"], function(script, dom, domConst, JSON, on){ 8 on(dom.byId("startButton"), "click", function(){ 9 domConst.place("<p>Requesting...</p>", "output"); 10 script.get("helloworld.jsonp.js", { 11 jsonp: "callback" 12 }).then(function(data){ 13 domConst.place("<p>response data: <code>" + JSON.stringify(data) + "</code></p>", "output"); 14 }); 15 }); 16 });