【问题标题】:To retrieve json data in jquery request succeeds在 jquery 请求中检索 json 数据成功
【发布时间】:2015-07-10 23:35:28
【问题描述】:

我有一个有趣的问题:

我得到这样的 json 数据:

{"answer0":"IMG_0793.JPG not allowed file size","answer1":"sajty-mira.jpg uploaded","answer2":"\u0433
\u0432\u0441.txt unsupported File type"}

使用 jquery $.ajax

我来了

success: function(resp)
{
var numFiles = $("#file").get(0).files.length;

for(i=0; i < numFiles; i++){
var answ = "resp.answer"+i;
$('#response').append(answ).css('color', 'black').html('<br>');
}
}

显示每个上传状态。 所以不能做 resp.answer0,resp.answer1,resp.answer2 ...

var answ = "resp.answer"+i; not working!

我可以用 php 做到这一点

<?php 
for ($i = 0; $i < $numFiles; $i++){
echo"
$('#response').append(resp.answer".$i.").css('color', 'black').append('<br>');
";
}
?>

请帮忙解决问题!

【问题讨论】:

  • 我认为您错误地混合了服务器端和客户端逻辑。

标签: php jquery json types


【解决方案1】:

你不能以这种方式使用append()(只是附加一个字符串):

$('#response').append(answ).css('color', 'black').html('<br>');

里面的append应该有一个有效的html标签:

$('#response').append('<div>' + answ + '</div>').css('color', 'black').html('<br>');

【讨论】:

    【解决方案2】:

    您需要使用解析 json 响应

    var response = $.parseJSON(resp);
    

    你可以使用响应变量。

    【讨论】:

    • 喜欢这个? var response = $.parseJSON(resp); for(i=0; i ' + answ + '
      ').css('color', 'black').html('
      '); } 不工作
  • var answer = response.answer + i; $('#response').append(answer).css('color', 'black').append('
    ');
  • 在解析 JSON 之前和之后尝试 console.log(response)
  • 【解决方案3】:

    您可以使用 eval() 函数来做到这一点

    如下:

    resp = {"answer0":"IMG_0793.JPG not allowed file size","answer1":"sajty-mira.jpg uploaded","answer2":"\u0433\u0432\u0441.txt unsupported File type"}
    var i = 1;
    var answ = eval("resp.answer"+i);
    console.log('answ:'+answ); // This will print answ:sajty-mira.jpg uploaded
    

    【讨论】:

    • 他们不允许我投票!需要 15 声望!
    • 你应该避免使用 eval 来处理来自外部的东西,它会打开 XSS 漏洞
    • @alexis ,同意你的观点,但这里的输入不是来自外部,而是生成的 json。 eval 可以根据您打算使用它的情况来使用。但是是的,避免用于处理任何已发布的值等
    猜你喜欢
    • 2017-08-31
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多