如何在ajax()调用中传递URL参数

时间:2014-12-01 22:15:18

标签: jquery

我有一个页面(产品)响应URL参数并相应地显示信息。

以下是一些例子:

  • http://www.mysupersite.com/products
  • http://www.mysupersite.com/products/buy
  • http://www.mysupersite.com/products/buy/computers

这些是用户友好的网址。 URL参数是“购买”和“计算机”。

我需要将ajax()中当前页面的参数传递给我的服务器,以便它知道要发回的信息类型,例如。

$.ajax({
    type: "POST",
    url: "/cfc/getsomeproducts",
    dataType: "html",
    data: {
        //psuedo code below...
        ProductCategory: "buy",
        ProductType: "computers"
    }
})

澄清一下,如果我在/products/buy,我需要发送ProductCategory: 'buy'。如果在/products/buy/computersProductCategory: 'buy', ProductType: 'computers'

我怎么能达到这样的目标?

2 个答案:

答案 0 :(得分:2)

var url = document.location.pathname;
var values = url.split("/");

$.ajax({
    type: "POST",
    url: "/cfc/getsomeproducts",
    dataType: "html",
    data: {
        ProductCategory: values[2],
        ProductType: values[3]
    }
})

答案 1 :(得分:1)

如果你有一个坚实的URL参数约定,你可以在你的ajax调用之前解析URL然后发送一个数组作为数据。在后端,只需按照约定定义的顺序解析数组。类似的东西:

var myUrl = 'http://my.url/param1/param2',
delimiter = '/',
start = 3,
params = str.split(delimiter).slice(start),


$.ajax({
type: "POST",
url: "/cfc/getsomeproducts",
dataType: "html",
data: {
    params[]: params
}
})