这是调用股票价格的简单API。
http://hq.sinajs.cn/list=sh
在sh
的末尾添加股票代码。在浏览器中键入http://hq.sinajs.cn/list=sh600020
,一个包含股票价格的长字符串作为对http://hq.sinajs.cn/list=sh600020
的响应。
var hq_str_sh600020="中原高速,3.530,3.530,3.560,3.590,3.520,3.560,3.570,4517058,16087830.000,169746,3.560,114392,3.550,108100,3.540,153300,3.530,100000,3.520,129998,3.570,241810,3.580,346700,3.590,223900,3.600,148900,3.610,2018-09-19,15:00:00,00";
我想用ajax调用js api。
function stock(){
ticker = $("#code").val();
$.ajax({
type : "GET",
url : "http://hq.sinajs.cn/list=sh" + ticker,
dataType : "script",
cache : "false",
timeout : 2000,
success : function(data) {console.log(data);},
error : function() {alert("wrong");}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
tiker:
<input id="code" type="text" size="10">
<input id="Search" type="button" onclick="stock()" value="query">
当您在代码中输入600020
并单击query
时,没有任何wrong
信息,也许我对http://hq.sinajs.cn/list=sh600020
的呼叫处于良好状态。
包含股票价格信息的长字符串无法显示在控制台中,undefined
的窗口中console.log
如何在http://hq.sinajs.cn/list=sh600020
的窗口中显示console.log
的响应的长字符串?
答案 0 :(得分:0)
因为您使用的是dataType: "script"
,所以.ajax()
会将响应解析为javascript并执行。
这是回应...
var hq_str_sh600020 =“中原高速,3.530,3.530,3.560,3.590,3.520,3.560,3.570,4517058,16087830.000,169746,3.560,114392,3.550,108100,3.540,153300,3.530,100000,3.520,129998, 3.570,241810,3.580,346700,3.590,223900,3.600,148900,3.610,2018-09-19,15:00:00,00“;
执行后,此脚本将创建一个名为hq_str_sh600020
的全局变量;该变量就是您应该使用的变量。
您的成功回调将变为:
success : function(data) {console.log(hq_str_sh600020);}
示例:
function stock(){
ticker = $("#code").val();
$.ajax({
type : "GET",
url : "http://hq.sinajs.cn/list=sh" + ticker,
dataType : "script",
cache : "false",
timeout : 2000,
success : function(data) {console.log(hq_str_sh600020);},
error : function() {alert("wrong");}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
tiker:
<input id="code" type="text" size="10" value="600020">
<input id="Search" type="button" onclick="stock()" value="query">
.ajax() dataType: script
的文档说明了……
将响应评估为JavaScript并以纯文本形式返回
我不知道您的代码为什么不记录脚本的纯文本版本。也许其他人可以提供答案。
答案 1 :(得分:0)
代码是一个变量,您可以在input
中输入不同的数字,其ID为code
,这意味着您搜索的公司股票价格不同。
console.log(hq_str_sh600020)
表示您只能搜索指定的公司。
function stock(){
var ticker = $("#code").val();
$.ajax({
type : "GET",
url : "http://hq.sinajs.cn/list=sh" + ticker,
dataType : "script",
cache : "false",
timeout : 2000,
success : function(data) {
var sname = eval("hq_str_sh" + ticker);
console.log(sname);},
error : function() {alert("wrong");}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
tiker:
<input id="code" type="text" size="10">
<input id="Search" type="button" onclick="stock()" value="query">