代码之家  ›  专栏  ›  技术社区  ›  showkey

为什么在调用JSAPI时不能在console.log的窗口中显示响应?

  •  0
  • showkey  · 技术社区  · 6 年前

    这是一个调用股票价格的简单api。

    http://hq.sinajs.cn/list=sh 
    

    在末尾添加股票的股票代码 sh .类型 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调用jsapi。

     
    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 在ticker中,单击 query wrong 信息,也许是我的电话 http://hq.sinajs.cn/list=sh600020 状况良好。
    控制台中无法显示包含股价信息的长字符串, undefined console.log 的窗口, 如何显示 http://hq.sinajs.cn/list=sh600020 的响应 控制台.log 的窗户?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Turnip Moushumi Ahmed    6 年前

    因为你正在使用 dataType: "script" , .ajax() 将响应解析为javascript并执行它。

    var hq\ U str\ U 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并以纯文本形式返回

        2
  •  0
  •   showkey    6 年前

    股票代码是一个变量,你可以输入不同的数字 input 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">