我正在使用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保护吗?
我该如何解决?