我的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端无法识别已发送的内容?
答案 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});