Jquery链接查询参数到ajax请求

时间:2011-09-14 17:02:24

标签: javascript jquery

我有类似的链接 http://example.com?query1=query1&query2=query2作为锚标记的href。 我想使用来自链接的查询参数中的数据在href click上发布ajax。 我写了代码

$("a").bind('click',function(){
    $.ajax({type:'post',url:$(this).attr('href'), success: function(data){
    alert(data);
  }})
        return false;
});

但它不会在ajax post请求中发送查询参数。请求查询数据长度为0.

如何更改此代码以操作链接的查询参数中的数据?

修改

对不起,我的不好但是这些是请求

Accept:application/json, text/javascript, */*; q=0.01
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:0


Query String parameter 
action:delete
id:12

因此这些字段不会进入请求内容。

1 个答案:

答案 0 :(得分:3)

您需要使用href属性的值,而不仅仅是jQuery对象本身。

<击> URL:$(这).attr( 'href' 属性)VAL()

<强>更新

虽然你说这个答案对你有用,但我犯了一个错误。 val不是attr的有效函数,但是按照它为我工作的原始方式执行它。

请参阅此演示:http://jsfiddle.net/PuyzU/

更新2

好的,我现在看到了你的问题。从问题中你的意思并不清楚。

让我在这里重写你的问题,以确保我走在正确的轨道上。

  

我想获取URL的querstring参数并在我的ajax中使用它们   POST动作。我如何使用jQuery做到这一点?

在您的ajax post方法中,有一个属性data,您可以在其中存储要发布到服务器的数据。

$.ajax({
    type: 'post',
    url: "http://[...],
    data: DataToPostToServerHere
    [...]

在这种情况下,我们可以通过在?上拆分我们的URL来获取查询参数值作为单个字符串,并使用数组的第一部分作为URL,第二部分作为我们发送的数据:

var urlFull = $('#myLink').attr('href').split('?');
urlFull[0] // Our URL
urlFull[1] // The data to put into the data property for posting.

Working Example