发送 GET 请求
在 JavaScript 中,发送 GET 请求简单、方便,适用于简单字符串,不适用于大容量或加密数据。实现方法:将包含查询字符串的 URL 传入 open() 方法,设置第 1 个参数值为 GET 即可。服务器能够通过查询字符串接收用户信息。示例
下面示例以 GET 方式向服务器传递一条信息 callback=functionName。<input name="submit" type="button" id="submit" value="向服务器发出请求" /> <script> window.onload = function () { //页面初始化 var b = document.getElementsByTagName("input")[0]; b.onclick = function () { var url = "server.PHP?callback=functionName"; //设置查询字符串 var xhr = createXHR(); //实例化XMLHttpRequest 对象 xhr.open("GET",url,false); //建立连接,要求同步响应 xhr.send(null); //发送请求 console.log(xhr.responseText); //接收数据 } } </script>在服务器端文件(server.PHP)中输入下面的代码,获取查询字符串中 callback 的参数值,并把该值响应给客户端。
<?PHP echo $_GET["callback"]; ?>在浏览器中预览页面,当单击提交按钮时,在控制台显示传递的参数值。
查询字符串通过问号
?
作为前缀附加在 URL 的末尾,发送数据是以连字符&
连接的一个或多个名值对。
发送 POST 请求
在 JavaScript 中,POST 请求允许发送任意类型、长度的数据,多用于表单提交,以 send() 方法进行传递,而不以查询字符串的方式进行传递。POST 字符串与 GET 字符串的格式相同。格式如下:send("name1=value1&name2=value2...");
示例
使用 POST 方法向服务器传递数据。window.onload = function () { //页面初始化 var b = document.getElementsByTagName("input")[0]; b.onclick = function () { var url = "server.PHP"; //设置请求的地址 var xhr = createXHR(); //实例化XMLHttpRequest 对象 xhr.open("POST",false); //建立连接,要求同步响应 xhr.setRequestHeader ('Content-type','application/x-www-form-urlencoded'); //设置为表单方式提交 xhr.send("callback=functionName"); //发送请求 console.log(xhr.responseText); //接收数据 } }在 open() 方法中,设置第一个参数为 POST,然后使用 setRequestHeader() 方法设置请求消息的内容类型为“application/x-www-form-urlencoded”,它表示传递的是表单值,一般使用 POST 发送请求时都必须设置该选项,否则服务器无法识别传递过来的数据。
在服务器端设计接收 POST 方式传递的数据,并进行响应。
<?PHP echo $_POST["callback"]; ?>
将 JSON 转换为字符串
GET 和 POST 方法都是以名值对的字符串格式发送数据的。对象信息
下面是一个包含 3 个名值对的 JSON 类型数据。{ user : "css8",pass : "123456",email : "[email protected]" }将 JSON 数据转换为串行格式化显示如下。
'user="css8" & pass="123456" & email="[email protected]"'
数组信息
下面是一组有序的 JSON 信息,包含多个值。[{name : "user",value : "css8"},{name : "pass",value : "123456"),{name : "email",value : "[email protected]"}]将上面数据转换为串行格式显示如下。
'user="css8" & pass="123456" & email="[email protected]"'
【示例】为了方便开发,下面定义一个工具函数,该函数能够把数据转换为串行格式化字符串并返回。
//把JSON数据转换为串行字符串 //参数:data表示数组或对象类型的数据 //返回值:串行字符串 function JSONtoString (data) { var a = []; //临时数组 if (data.constructor == Array) { //处理数组 for (var i = 0; i < data.length; i ++) { a.push(data[i].name + "=" + encodeURIComponent(data[i].value)); } } else { //处理对象 for (var i in data) { a.push(i + "=" + encodeURIComponent(data[i])); } } return a.join("&"); //把数组转换为串行字符串,并返回 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。