jquery - 如何在 jQuery 中的 POST 请求中转义 & ?

标签 jquery ajax escaping

我有一个输入元素,其值是&:

<input type="checkbox" value="Biografie, životopisy, osudy, Domácí rock&amp;pop" />

当我尝试通过 ajax 请求发送它时:

$.ajax({
    type: "POST",
    url: "/admin/kategorie/add/link.json",
    data: "id="+id+"&value="+value+"&type="+type,
    error: function(){alert('Chyba! Reloadněte prosím stránku.');}
});

实际发送的帖子数据是:

id: 1
pop:
type: e
value: Biografie, životopisy, osudy, Domácí rock

*请注意,data 中的所有变量均已定义,并且 value 包含 $(thatInputElement).attr('value')。

如何正确转义 & 以便帖子字段 value 包含 Biografie、životopisy、osudy、Domácí rock&pop

最佳答案

您可以将 data 选项设置为对象并让 jQuery 进行编码,如下所示:

$.ajax({
  type: "POST",
  url: "/admin/kategorie/add/link.json",
  data: { id: id, value: value, type: type },
  error: function(){ alert('Chyba! Reloadněte prosím stránku.'); }
});

可以使用encodeURIComponent()对每个值进行编码,像这样:

encodeURIComponent(value)

但在大多数情况下,第一个选项更简单/更短:)

关于jquery - 如何在 jQuery 中的 POST 请求中转义 & ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3319123/

相关文章:

javascript - div 的宽度占所有剩余宽度

javascript - 在 KnockoutJS 中将数据推送到数组时出现问题

javascript - 如何使用 jQuery 数据表使用 onChange 事件从 html 选择标签选项值中获取值?

javascript - jQuery 数据表如果数据长度大于特定长度

jquery - 如何在 jquery datetimepicker 中将 24 小时下拉列表更改为 12 小时下拉列表

javascript - 相当于 $(this).parent().submit() 的普通 JavaScript 是什么?

javascript - Ajax 不工作。我需要页眉和页脚不要每次都重新加载。你能帮助我吗?

python-3.x - 为什么 PyYAML 和 ruamel.yaml 在单引号时转义特殊字符?

php - MySql 由双引号括起来

python - 如何在Python中搜索字符串内带引号的子字符串?