查询字符串未显示在带有jQuery Ajax的url中

时间:2014-10-23 12:20:49

标签: jquery ajax

我通过jQuery Ajax将数据(过滤器选项)发送到服务器,处理结果,一切正常。但是,查询字符串不会显示在URL中。但我需要这样,用户可以复制/粘贴网址并获取过滤后的内容。

根据有关传递数据的文档(http://api.jquery.com/jquery.ajax/):

  

要发送到服务器的数据。它被转换为查询字符串if   还不是一个字符串。它已附加到GET请求的URL。

我忘记了什么吗?任何提示?谢谢!

这是一个类似于我的工作代码的示例:



 $.ajax({
        url: 'http://myurl.com/handleAjax',
        type: "GET",
        data : {filter1 : 1, filter2 : 2}
        dataType : 'json'
  
    }).success(function(data) {
       ..do Stuff with data
         }
  })




1 个答案:

答案 0 :(得分:0)

正如您所注意到的,AJAX请求不会更改地址栏中的URL。这是设计使然,因为AJAX请求是一个单独的后台请求。它与用于加载页面的完全不同。

您可以使用HTML 5 pushState函数更新地址栏中的地址。

var data = {filter1 : 1, filter2 : 2};
var parameterizedData = $.param(data);
var queryString = "?" + parameterizedData;

window.history.pushState(null, "", queryString);