我需要对通过 AJAX 输出的文本进行转义。如果我向数据库提交脚本,比如 <script>alert('hello world');</script>
, 然后在页面上执行弹出。
这是我的函数,它设置数据,然后抓取要通过 AJAX 发送的数据。
function add_order() {
if($_SERVER['REQUEST_METHOD'] == "POST") {
$add_order = $this->order_model->set_order($_POST['text']);
if($add_order==false){
echo "fail";
return false;
}
$order_data = $this->order_model->get_order_by_id($add_order);
echo json_encode($order_data);
return true;
}
}
J查询代码:
$('#create_order').submit(function(){
$.post('/order/add_order/', $('#create_order').serialize(), function(data){
var obj = $.parseJSON(data);
var obj_item = obj[0];
$('tr.'+obj_item.id).append("<td>" + obj_item.text + "</td>");
msg('success', 'Part #'+obj_item.number+' has been successfully created');
});
}
return false;
});
如何阻止 obj_item.text 执行脚本?
最佳答案
您需要构建 DOM 元素并设置文本而不是构建 HTML:
$("<td />", { text: obj_item.text }).appendTo('tr.tr.' + obj_item.id);
关于javascript - 何时转义使用 AJAX 发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527716/