我有类似的链接
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
因此这些字段不会进入请求内容。
答案 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.