用<>调用JQuery.Ajax在字符串中

时间:2012-10-15 11:52:56

标签: jquery ajax string inequality

我有一个简单的jquery ajax调用来更新输入框中的数据。我在输入中有任何标记的那一刻,例如<div>它不会进入控制器。有关我如何调用ajax并保存到其中包含html代码标记的数据库texxt的任何帮助

$.ajax({
  type:post,
  url: "/dom/updatelement",
  data: "name="+name+&id="+id
});

name可能包含标记。

2 个答案:

答案 0 :(得分:5)

以下是在POST请求中发送数据的正确方法:

$.ajax({
  type: 'post',
  url: '/dom/updatelement',
  data: { name: name, id: id }
});

jQuery将确保在使用此语法时正确地对数据进行url编码。

您当然可以使用encodeURIComponent方法手动完成此操作:

$.ajax({
  type: 'post',
  url: '/dom/updatelement',
  data: 'name=' + encodeURIComponent(name) + '&id=' + encodeURIComponent(id)
});

但老实说,第一种方法似乎更具可读性和优选性。

答案 1 :(得分:1)

首先,您应该进行正确的Ajax调用:

$.ajax({
    type: "POST",
    url: "/dom/updatelement",
    data: {
        name: name,
        id: id
    }
});

接下来,您可以使用特殊函数(例如PHP中的htmlspecialchars())转换控制器部分中的<>等字符。