AJAX Post缺失变量

时间:2011-11-08 09:32:54

标签: javascript ajax

我正在使用像这样的ajax调用:

o.open("POST",q,true);
o.setRequestHeader("Content-type","application/x-www-form-urlencoded");
o.setRequestHeader("Content-length",p.length);
o.setRequestHeader("Connection","close");

其中q = url和查询字符串。 p =仅查询字符串。

我的查询采用以下形式:"/apps/nettrax/f/events_detail.php?get=1&ids="+multiple values added like this: 123~34567~567~678~etc

如果有一些值,但是大值字符串失败 - 变量 ids 未通过(尽管获取),这一切都有效... *我不使用jquery。

2 个答案:

答案 0 :(得分:2)

您正在发送POST请求,但是通过URL指定GET中的参数。 URL的大小有限制,因此无法使用。您应该在send()调用中传递参数,以便将它们指定为POST数据:

var parameters = "ids=" + encodeURIComponent(ids);
o.open("POST","events_detail.php",true);
o.setRequestHeader("Content-type","application/x-www-form-urlencoded");
o.setRequestHeader("Content-length",p.length);
o.setRequestHeader("Connection","close");
o.send(parameters);

答案 1 :(得分:0)

我想这两件事可能会发生:

a)你的网址字符串太长,所以它被截断了

b)您的参数未按网址编码,因此字符串会“中断”网址。如果使用php使用类似urlencode()的函数或构建自己的函数。