1

可能重复:
如何在 jQuery 的 POST 请求中转义 &?

我正在使用 jQuery ajax 在我的网站上自动完成。我遇到了一个问题,一个 & 可以存储在数据库中,这只会对我发布的变量造成严重破坏。它需要做什么:(ajax=true&search=t&w使用搜索变量的 & 和 w 部分)

它的作用是创建一个新的 post 变量w

有没有办法阻止 & 符号创建新的 post 变量,或者我只需要更改&'sto 和/And

这是我的代码:

$.ajax({
    url: page_url,
    type: 'POST',
    data: 'ajax=true&search='+$('#search_string').val(),
    success: function(data){

    }
});

如果值被编码,数据库将如何处理编码的 &?

4

3 回答 3

3

如果您将传递给数据的值设置为对象,它将轻松编码:

data: {ajax:isAjaxTrue, search: searchValue}

请参阅:如何在 jQuery 的 POST 请求中转义 &?

于 2012-10-03T17:25:29.510 回答
2

您需要使用 url 编码器来避免参数值中出现特殊字符。

encodeURIComponent(value);
于 2012-10-03T17:23:14.550 回答
1

看看encodeURIComponent()

$.ajax({
    ...
    data: encodeURIComponent('ajax=true&search='+$('#search_string').val()),
    ...
});
于 2012-10-03T17:23:51.980 回答