在jQuery中对字符串进行URL编码,以便进行AJAX请求

14 浏览
0 Comments

在jQuery中对字符串进行URL编码,以便进行AJAX请求

我正在我的应用程序中实现谷歌的即时搜索。我希望在用户键入文本输入时触发HTTP请求。我遇到的唯一问题是,当用户在名字和姓氏之间输入空格时,空格不会编码为+,从而破坏了搜索。我该如何替换空格为+,或者安全地URL编码字符串呢?

$("#search").keypress(function(){       
    var query = "{% url accounts.views.instasearch  %}?q=" + $('#tags').val();
    var options = {};
    $("#results").html(ajax_load).load(query);
});

admin 更改状态以发布 2023年5月24日
0
0 Comments

encodeURIComponent 对我来说很有效。我们可以在ajax调用中像这样提供url。下面是代码:

  $.ajax({
    cache: false,
    type: "POST",
    url: "http://atandra.mivamerchantdev.com//mm5/json.mvc?Store_Code=ATA&Function=Module&Module_Code=thub_connector&Module_Function=THUB_Request",
    data: "strChannelName=" + $('#txtupdstorename').val() + "&ServiceUrl=" + encodeURIComponent($('#txtupdserviceurl').val()),
    dataType: "HTML",
    success: function (data) {
    },
    error: function (xhr, ajaxOptions, thrownError) {
    }
  });

0
0 Comments

试试encodeURIComponent

通过将某些字符的每个实例替换为代表字符的UTF-8编码的一个、两个、三个或四个转义序列来对统一资源标识符(URI)组件进行编码(仅对由两个“代理”字符组成的字符将使用四个转义序列)。

例如:

var encoded = encodeURIComponent(str);

0