如何用ajax中的其他方法替换eval函数?

时间:2018-09-20 01:24:40

标签: javascript ajax eval

我已经读过一些材料,它说eval是邪恶的,可以用某种方法代替eval。 下面的代码段可以调用sinajs股票价格api,当您在input中键入某公司的股票代码时,其价格将显示在console.log的窗口中,例如输入600020

 

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) {
            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">
 

对于下面的代码片段,如何用某种方法替换eval函数?

success : function(data) {
    sname = eval("hq_str_sh" + ticker);
    console.log(sname);},

这是我的尝试

success : function(data) {
    window["myTicker"] = "hq_str_sh" + ticker;
    console.log(myTicker);},

失败。

2 个答案:

答案 0 :(得分:0)

您可以解析响应。

data.substring(4, c.length - 1).split("=")[1];

这将是通过var部分的响应,且不带尾部;将其分割为=符号,并且数据是数组的第二个元素。

答案 1 :(得分:0)

console.log(窗口[“ hq_str_sh” +滚动条])

相关问题