下面的函数创建一个 AJAX 帖子。 makepostrequest 只是我写的一个标准的 ajax post 请求函数,我省略了它,因为它不是问题的根源。下面的函数不发送“小部件”。
function widgets_positions(){
var widgets = '';
var col_1 = document.getElementById('col_1');
var col_2 = document.getElementById('col_2');
var col_3 = document.getElementById('col_3');
for(i = 0; i < col_1.childNodes.length; i++) {
var str1 = col_1.childNodes[i].className;
if(str1 && str1.match('widget')) widgets+='&c[1]['+i+']='+col_1.childNodes[i].id;
}
makePOSTRequest('/ajax.php',"widgets="+widgets);
return true;
}
但如果代替“小部件”,我会尝试发布
var random = 'sumo'
makePOSTRequest('/ajax.php',"widgets="+random);
它有效。
不仅如此,如果我在上面的 'makepostrequest'
之前放置一个 echo 命令,'widgets'
会在 clinetside 上打印为 c[ 1]c[1]废话
。
那么为什么 var random = 'sumo'
会被发送,而 'widgets'
变量却没有发送?
最佳答案
这是因为“widgets”以 & 开头,它将标记该请求中另一个变量定义的开始。所以“小部件”变空了。
尝试删除该“&”,并在服务器端相应地解析它以正确读取每个小部件。
关于javascript - 为什么这个ajax帖子不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6221216/