&安培; php post收到问题

时间:2011-04-15 10:26:49

标签: php javascript

我的ajax请求是

ajaxRequest.send("var1=" + var1.value + "&var2=" + var2.value + "&var3=" + var3.value); 

但浏览器将请求发送为

var1= hello&var2= world&var3=1

php端接收数据作为帖子

$variable1 = $_POST['var1'];
$variable2 = $_POST['var2'];
$variable3 = $_POST['var3'];

只有第一个变量接收数据。 las两个变量没有收到任何数据。

正如我所知,发送请求的正确格式是

var1= hello&var2= world&var3=1 

但是为什么浏览器附加了一些无用的字符,这些字符使得php端无法识别已发送的内容?

2 个答案:

答案 0 :(得分:0)

使用urlencode时会发生什么?

您可以先将数据字符串放入变量,然后将urlencode设置为可验证并将变量传递给ajaxRequest.send

答案 1 :(得分:0)

问题是您的&符号在将请求发送到浏览器之前进行了编码。这样,无法识别下一个变量。相反,第一个变量包含:hello&var2= world&var3=1。我不知道你正在使用哪个javascript库,但在我看来你要么使用错误的函数参数(也许你需要注入一个对象而不是一个字符串?),或者该函数错误地编码了字符串。 / p>

jQuery's ajax method为例,查询参数作为对象传递,如下所示:

var data = { 'var1' : var1.value, 'var2' : var2.value };
$.ajax('/ajax/', { 'data': data});