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!