如何逃避&在jQuery的POST请求中? [英] How to escape & in a POST request in jQuery?

查看:119
本文介绍了如何逃避&在jQuery的POST请求中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个输入元素&价值:

 < input type =checkboxvalue =Biografie,životopisy,osudy,Domácírock& amp; /> 

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

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

实际发送的帖子数据是:

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

*请注意,数据中的所有变量都被定义,值包含$(thatInputElement).attr('value')。



如何正确地退出& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp c>将包含 Biografie,životopisy,osudy,Domácírock& amp; amp; pop

解决方案

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

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

您可以使用 encodeURIComponent() ,像这样:

  encodeURIComponent(value)

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


i have an input element with & in value:

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

When i try sending it through an ajax request:

$.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.');}
});

the post data that actually gets sent is:

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

*Note that all the variables in data are defined and value contains $(thatInputElement).attr('value').

How can I escape the &amp; properly so that post field value would contain Biografie, životopisy, osudy, Domácí rock&amp;pop?

解决方案

You can set your data option as an object and let jQuery do the encoding, like this:

$.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.'); }
});

You can encode each value using encodeURIComponent(), like this:

encodeURIComponent(value)

But the first option much simpler/shorter in most cases :)

这篇关于如何逃避&amp;在jQuery的POST请求中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆