以下帖子的含义是什么?
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("POST", "url" + queryString, true);
因为我无法使用来自网址的$_POST['var']
来访问变量,但是
使用$_REQUEST['var']
我可以访问值..
答案 0 :(得分:2)
当您从$_POST
读取时,您应该在HTTP正文中传递您的参数,而不是使用查询字符串。
您需要发送您的参数,如以下示例所示:
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("POST", "your_service.php", true);
ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajaxRequest.send("var=100&another_var=200");
答案 1 :(得分:1)
您无法通过$_POST
访问参数,因为您将其附加到网址(即可以通过$_GET
访问它们)并且不会将其作为POST
数据发送
如果您想通过POST
发送参数,请查看send()
方法。
答案 2 :(得分:1)
POST
包含在HTTP请求中(例如XMLHTTPRequest
)。
在您的情况下,您将查询字符串添加到URL,这意味着它将作为GET变量传递。即使它是一个post请求,PHP仍然可以访问作为查询字符串添加的任何GET变量。
根据您的代码,我认为您不会告诉请求请求的POST部分中应包含哪些信息,这可以解释为什么您没有看到$_POST['var']
的任何内容。
但由于$_REQUEST['var']
在GET
和POST
中查找请求变量以及请求中传递的任何Cookie,您会看到通过查询字符串传递的变量。
尝试回显$_GET['var']
,你会发现这是变量从中获取数据的地方。
如果要以正确的方式使用POST,则不需要将请求指向具有查询字符串的URL,而是将该查询字符串定义为发布数据。
答案 3 :(得分:0)
帖子确实意味着值已发布,但您应该将它们添加为帖子变量,而现在您只将它们添加到网址中,这样您只能使用$ _REQUEST和$ _GET获取它们。
答案 4 :(得分:0)
发布数据通常通过发布数据传递。
IIRC,您可以通过send方法将其作为对象传递。
ajaxRequest.send(requestString)