在XMLHttpRequest中POST或GET

时间:2010-02-11 10:07:17

标签: php javascript html ajax

以下帖子的含义是什么?

ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("POST", "url" + queryString, true);

因为我无法使用来自网址的$_POST['var']来访问变量,但是 使用$_REQUEST['var']我可以访问值..

5 个答案:

答案 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']GETPOST中查找请求变量以及请求中传递的任何Cookie,您会看到通过查询字符串传递的变量。

尝试回显$_GET['var'],你会发现这是变量从中获取数据的地方。

如果要以正确的方式使用POST,则不需要将请求指向具有查询字符串的URL,而是将该查询字符串定义为发布数据。

答案 3 :(得分:0)

帖子确实意味着值已发布,但您应该将它们添加为帖子变量,而现在您只将它们添加到网址中,这样您只能使用$ _REQUEST和$ _GET获取它们。

答案 4 :(得分:0)

发布数据通常通过发布数据传递。

IIRC,您可以通过send方法将其作为对象传递。

ajaxRequest.send(requestString)