正如我所知,使用ajax可以将数据发送到服务器,但我对使用XMLHttpRequest
发送数组感到困惑,而不是像jQuery这样的任何库。我的问题是,是否可以发送数组到php
使用XMLHttpRequest
和jQuery
如何发送数组到php,我的意思是jQuery做任何额外的工作发送数组到服务器(PHP$_POST)?
你只能发送一串字节。“发送数组”是通过序列化(对象的字符串表示)数组并发送来完成的。然后,服务器将解析字符串并从中重新构建内存对象。
因此,将[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)
测验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) );
这取决于您选择打包数据结构的协议。最常用的两种是XML和JSON。两者都有声明数组的方法:
JSON:[“一件事”,“另一件事]
XML:
两者都不会占用服务器任何重要的额外工作。在许多情况下,它实际上会减少工作,因为您不需要使用命名约定来区分它们。
您希望发送一个jSon对象(可以是数组)。如果您使用的是php,请使用XMLHttpRequest w/o jQuery将JSON数据发送到php。
关于jSon的更多信息:http://json.org/
jQuery json示例:JQuery和JSON