Jquery 如何使用XMLHttpRequest将数组发送到服务器

Jquery 如何使用XMLHttpRequest将数组发送到服务器,jquery,ajax,xmlhttprequest,Jquery,Ajax,Xmlhttprequest,据我所知,使用ajax可以将数据发送到服务器,但我对使用XMLHttpRequest而不是像jQuery这样的库来发送要发布的数组感到困惑。我的问题是,是否可以使用XMLHttpRequest将数组发送到php,以及jQuery如何将数组发送到php,我的意思是jQuery是否做了其他工作来将数组发送到服务器(php$\u POST)?您想要发送一个jSon对象(可以是数组)。如果您使用的是php,请查看此项 关于jSon的更多信息: jQuery jSon示例:,这取决于您选择打包数据结构的协

据我所知,使用ajax可以将数据发送到服务器,但我对使用
XMLHttpRequest
而不是像jQuery这样的库来发送要发布的数组感到困惑。我的问题是,是否可以使用
XMLHttpRequest
将数组发送到
php
,以及
jQuery
如何将数组发送到php,我的意思是jQuery是否做了其他工作来将数组发送到服务器(php$\u POST)?

您想要发送一个jSon对象(可以是数组)。如果您使用的是php,请查看此项

关于jSon的更多信息:


jQuery jSon示例:

,这取决于您选择打包数据结构的协议。最常用的两种是XML和JSON。两者都有声明数组的方法:

JSON:
[“一件事”,“另一件事]

XML:


而且这两种方法都不会让服务器承担任何额外的工作。在许多情况下,它实际上会减少工作量,因为您不需要使用命名约定来区分它们。

除了一个字节字符串,您不能发送任何内容。“发送数组”是通过序列化(对象的字符串表示)数组并发送来完成的。 然后,服务器将解析字符串并从中重新构建内存对象

因此,将
[1,2,3]
发送到PHP可能会发生如下情况:

var a = [1,2,3],
    xmlhttp = new XMLHttpRequest;

xmlhttp.open( "POST", "test.php" );
xmlhttp.setRequestHeader( "Content-Type", "application/json" );
xmlhttp.send( '[1,2,3]' ); //Note that it's a string. 
                          //This manual step could have been replaced with JSON.stringify(a)
test.php:

$data = file_get_contents( "php://input" ); //$data is now the string '[1,2,3]';

$data = json_decode( $data ); //$data is now a php array array(1,2,3)
顺便说一句,使用jQuery,您只需执行以下操作:

$.post( "test.php", JSON.stringify(a) );

非常感谢。你能解释一下文件的内容吗php://input" );?@红色它是请求正文的原始表示形式。看见例如,考虑正常的表单提交,在这里您有<代码> $yPOST(“KEY”)==“值”< /代码>。
的内容php://input“
在本例中是
“key=value”
,这是PHP用来为您构建
$\u POST
数组的。您需要在这里使用它,因为在发布JSON时,php不会填充
$\u POST
(因为
$\u POST
只对表单有效,而不是JSON)。那么,当我使用
$POST
时,如何将数据作为
$name=$\u POST['name']
来获取呢。这完全取决于你所使用的
$格式
$\u POST
仅适用于表单编码数据。当像这样发布JSON时,您需要从请求体手动解码它。如果我误解了,很抱歉,但我的问题是当我使用
$.post(“test.php”,JSON.stringify(a))如何在
$\u POST
中获取数据?