首页 > 请问这个 api 怎么调用?

请问这个 api 怎么调用?

 Sina股票数据接口
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:
http://hq.sinajs.cn/list=sh601006
这个url会返回一串文本,例如:
var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92, 
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";

我用了ajax ,结果没啥用:

$.ajax
(
    {
        type : 'GET',      //默认是GET
        url : 'http://hq.sinajs.cn/list=sh601006',
        success : f_success,    //成功函数
        error : f_Error,        //错误函数
        cache:false    //是否使用缓存
    }
);

请问这个用的时候具体怎么用..
自学勿怪..


你说的没啥用具体是出错呢?还是没有数据返回呢?还是其他?请明确一下你的问题。

还有你的f_success函数具体是处理了什么?

我试了一下这个接口,返回的不是json数据,而是一个html页面,需要你去提取这个页面里面的数据。


1楼用的是jsonp,实质就是利用了script标签的src可以跨域,其实就相当于引用了个脚本文件, 把对应的data写到了脚本里存了起来,然后你再来处理!那个.then(function(){})方法,其实也就是等前面的函数执行完了,在执行后面的函数代码


这是一段 js 啊,应该动态生成 script 标签插入


涉及到跨域问题,所有没法直接ajax通讯,百度搜跨域


这个ajax是获取不到的,因为跨域的原因。
不过可以采用script标签插入的方式获取数据,简单写个函数如下:

function fetchHq(code){
  return new Promise(function(resolve,reject){
   var script = document.createElement("script");
   script.src="http://hq.sinajs.cn/list="+code;
   script.onload = function(){
      var data = window["hq_str_"+code];
      script.parentNode.removeChild(script);
      resolve(data);
   };
   script.onerror = reject;
   document.getElementsByTagName('HEAD').item(0).appendChild(script);
  })
}

使用起来也比较简单

fetchHq("sh601006").then(function(data){
    console.log(data);
})

为啥会踩我?


地址不是你自己域名下的,需要请求的域名支持跨域才行。当然除非你用ifram取html!

【热门文章】
【热门文章】