首页 > 解决方案 > 通过ajax将查询字符串作为字符串传递

问题描述

我正在尝试通过 ajax 传递一个字符串,但是该字符串是从搜索中获取的查询字符串,看起来像这样:

search=&site=0&salesperson=0&referral=0&product=0&estimate=0&sort=date&open=on&filter_sbmt=Filter+Prospect&limit=30

因此,当我通过 ajax 将它作为变量传递时,url=search=&site=0...它会设置$_POST['url']="search=",然后将 &site 分隔为一个新帖子,而不是将整个字符串保存在一个中。

$.ajax({
    type    : 'POST',
    url     : '//'+base_url+'/ajax2/customer-search.php',
    data    : 'url='+url,
    success : function(data) {
        $('#customers_table').html(data);
    }
});

我已经尝试在 php 端和 javascript 端使用 json 对其进行解码。这也没有帮助。我没主意了。

我怎样才能得到这个字符串"search=&site=0&salesperson=0&referral=0&product=0&estimate=0&sort=date&open=on&filter_sbmt=Filter+Prospect&limit=30"到 ajax/customer-search.php

标签: phpjqueryjsonajaxstring

解决方案


如果您传递的是对象而不是字符串,jQuery 将为您编码数据。

data    : { url }

或者,现代浏览器有一个 URLSearchParams 对象,它将为您编码数据:

var searchParams = new URLSearchParams();
searchParams.append("url", url);
var data = searchParams.toString(); 

推荐阅读