小编典典

如何在jQuery中转义和发布请求?

ajax

我有一个带有&值的输入元素:

<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

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

我怎样才能&amp;正确地逃脱,以便张贴字段value将包含Biografie, životopisy, osudy, Domácí rock&amp;pop


阅读 241

收藏
2020-07-26

共1个答案

小编典典

您可以将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)

但是在大多数情况下,第一个选择要简单/短得多:)

2020-07-26