1

我正在使用jQuery Form 插件通过 AJAX 提交表单并接收 JSON 响应:

$('#'+searchFormView.form.form.id).ajaxForm({
    dataType:'json',
    success:This.renderSearchResults,
    error:This.error
});

HTTP 响应正文:

{
"grid":{
    "headers":[
        "Image","Additional","data","button"
    ],
    "rows":[
        ["<img src=\"\Path_to_image\" alt=\"picture\">",
         "Additonal",
         "data",
         "<button>Button text<\/button>"
        ],
        [Some more of these arrays]
    ]
}
}

Chrome 和 FF 对此完全没问题。它渲染得很好。IE 在到达成功方法时将 HTML 从数据值中剔除:

renderSearchResults:function(data){
    console.log(data.grid.rows[0][0]);
    // Render the grid.
}

IE控制台登录结果:

Log:

如果我在成功方法运行时观察局部变量:

"{
    \"grid\":{
        \"headers\":[
            \"Image\",
            \"Additional\",
            \"data\",
            \"Button\"
        ],
    \"rows\":[
        [\"\",\"Additional\",\"data\",\"Button text<\\/button>\"],
        ...

如您所见,HTML 标记已经消失(奇怪的是,标记仍然存在)。

这应该是XSS保护吗?

我该如何解决?

4

0 回答 0