我正在向这样的ajax页面发送一个变量值
var d = $('#sTree2').sortableListsToString();
$.post('myscript.php?url='+d);
d值为
item_a=0&item_b=0&item_b1=item_b&item_b2=item_b&item_b3=item_b&item_b4=item_b&item_b5=
item_b&item_c=0&item_c1=item_c&item_c2=item_c&item_c3=item_c&item_c4=item_c&item_c5=item_c&
item_d=0&item_d1=item_d&item_d2=item_d&item_d3=item_d&item_d4=item_d&item_d5=item_d&
item_e=0&item_f=0
在php文件中我像往常一样保存值
$url=$_REQUEST['url'];
echo $url;
但结果是
item_a=0
当我打开控制台中的网络选项卡并查看ajax的预览时,我发现相同的错误值item_a = 0,而Header是正确的,包含我上面提到的整个网址
有什么建议吗?
答案 0 :(得分:0)
那是因为你没有正确编码你的字符串。您正在使用两个单独的url编码字符串并将它们拼接在一起。服务器有 NO 的想法,你希望整个事物成为url
值的一部分,所以它做了它应该做的事情 - 将事物解码成许多单独的key = value对。
您需要对d
进行urlencode,例如
item_a=0&item_b=0&etc.. -> item_a=&item_b=0&etc...
答案 1 :(得分:0)
在php文件中使用$_POST['url']
,并通过以下邮件发送数据:
$.post(url, data);
答案 2 :(得分:0)
在没有查询字符串的情况下发送数据解决了问题
$.post('myscript.php?'+d);
然后在php文件中
$url=$_SERVER['REQUEST_URI'];
$url=end(explode("?",$url));
echo $url;