[英]& php post receive problem
我的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'];
只有第一个变量接收数据。 这两个变量不接收任何数据。
我知道发送请求的正确格式是
var1= hello&var2= world&var3=1
但是,为什么浏览器附加了一些无用的字符,使php端无法识别已发送的内容?
使用urlencode会发生什么?
您可以先将数据字符串放入变量中,然后再输入可验证的urlencode并将该变量传递给ajaxRequest.send
问题是您的&符号在将请求发送到浏览器之前已编码。 这样,下一个变量将无法识别。 相反,第一个变量包含: hello&var2= world&var3=1
。 我不知道您使用的是哪个JavaScript库,但是在我看来,您使用的是错误的函数参数(也许您需要注入对象而不是字符串?),或者函数对字符串的编码错误。
以jQuery的ajax方法为例,查询参数作为对象传递,如下所示:
var data = { 'var1' : var1.value, 'var2' : var2.value };
$.ajax('/ajax/', { 'data': data});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.