这个ajax我正在做的事情并没有按照我的要求去做。
在客户端JS端,我警告通过请求发送的所有内容,在PHP端我打印出它收到的所有内容。这两个变量列表不一样。我不明白为什么。
这是我如何发送数据(通过帖子):
xhr.onreadystatechange = response;
xhr.open("POST", self.url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", data.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(data);
if(self.ALERT_SENT_DATA)
{
alert("sending this to " + self.url + ":\n" + data);
}
并且警报如下所示:(除了type,permissionid和权限外,一切都为零)
sending this to workers/permission.php:
type=save&permissionid=2&permission=1&info=0&users=0&pages=0&menus=0
&toolmanager=0&contributors=0¤tissue=0&backup=0&features=0&issues=0&ast=0
&research=0&sports=0&milestones=0&sportslist=0&crusher=0&permission=0&info=0
&users=0&pages=0&menus=0&toolmanager=0&contributors=0¤tissue=0&backup=0
&features=0&issues=0&ast=0&research=0&sports=0&milestones=0&sportslist=0&crusher=0
在PHP方面,我总是可以获得变量类型和权限。那些2总是工作,我不知道为什么。除了他们是第一个之外,这两个人并没有什么特别之处。然而,在permissionid之后的所有其他事情总是为零。无论javascript告诉我它发送的是什么,PHP上的所有内容都是零。
那么我怎么能进入这个并弄清楚我的问题在哪里?
答案 0 :(得分:1)
&permission=1&in.....her=0&permission=0
最后一个赢得$ _POST,$ _POST ['权限']将为0。
您可以在名称(& permission [] = 1& permission [] = 0)之后添加[]来阻止它,这将在$ _POST ['permission']中为您提供一个数组,而不是一个字符串。
如果您无法控制命名,则必须手动解析输入(您可以通过$input = file_get_contents('php://input');
获取字符串