2011-09-14 22 views
1

我有链接像 http://example.com?query1=query1&query2=query2作为锚标记的href。 我想在链接的查询参数中使用数据进行href点击后发送ajax。 我已经写代码jquery与查询参数的链接到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 

回答

3

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

网址:$(本).attr( 'href' 属性)VAL()

更新

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

看到这个演示:http://jsfiddle.net/PuyzU/

更新2

好吧,我现在看到你的问题。这个问题并不清楚你的意思。

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

我想采取URL的查询字符串参数,并在我的ajax POST操作中使用它们。我如何使用jQuery来做到这一点?

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

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

在这种情况下,我们可以通过在?分裂我们的URL获得querysting参数值作为单个字符串和使用该阵列的第一部分作为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

+0

真的吗?我刚刚检查了我的代码示例,我认为这是错误的。使用.val()会抛出一个错误,实际上这样做会导致您的原始方式适用于我。 –

+0

哦对不起:P 我在这里尝试http:// jsfiddle。净/ Sta7D/8/ ,并点击它是JavaScript错误和页面加载它与自我价值。 我网络面板我认为这是ajax请求:P –

+0

我想我的但在萤火虫阅读网络面板:P –