如何在其中一个查询参数值中构造一个带&符号的URL?

时间:2011-03-24 17:25:43

标签: jquery ajax

我有一个包含“&”的输入comment。如何使用带有此值的jQuery ajax get方法?

例如:

index.php?comment=i&you

其中评论字段的实际值为i&you,将错误地用作网址。

4 个答案:

答案 0 :(得分:3)

在第二个参数(数据)中将参数作为映射传递。

$.get("index.php", {"comment": "i&you"});

jQuery会关注URL编码。

另见:


或者,如果这些值实际来自表单,只需执行

$.get("index.php", $("#formid").serialize());

另见:

答案 1 :(得分:1)

使用escape()功能:

var comment = 'i&you';
var url = 'index.php?comment=' + escape(comment); #=> index.php?comment=i%26you

修改

错过了jQuery部分,抱歉。在$.ajax()来电中,请执行:

$.ajax('index.php', {
    'data': { 'comment': 'i&you', ... }
    ...
});

通过将对象(或字符串)传递给data参数(documentation)中的options属性,可以确保正确转义数据,而无需显式执行你自己。

答案 2 :(得分:1)

我建议使用serialize方法向您的请求添加数据。 Serialize将为您正确编码数据。

$.get( 'index.php', $('form').serialize(), function(result) {
   // do something with result
});

或者只是发回一个输入:

$.get( 'index.php', $('input#comment').serialize(), function(result) {
   // do something with result
});

答案 3 :(得分:0)

我不太清楚你的意思,但是要使用jQuery运行AJAX调用,你会做以下事情:

$.ajax({
  url: "index.php?comment=i&you",
  context: document.body,
  success: function(){
    // Whatever you need to do goes in this function
  }
});