AJAX 的GET和POST方法(向服务器发送请求)

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

方法 描述
open(method,url,async)
规定请求的类型、URL 以及是否异步处理请求。

  • method:请求的类型;GET 或 POST
  • url:文件在服务器上的位置
  • async:true(异步)或 false(同步)
send(string)
将请求发送到服务器。

  • string:仅用于 POST 请求

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

GET方法示例:

 1 <html>
 2 <head>
 3 <script type="text/javascript">
 4 function loadXMLDoc()
 5 {
 6 var xmlhttp;
 7 if (window.XMLHttpRequest)
 8   {// code for IE7+, Firefox, Chrome, Opera, Safari
 9   xmlhttp=new XMLHttpRequest();
10   }
11 else
12   {// code for IE6, IE5
13   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
14   }
15 xmlhttp.onreadystatechange=function()
16   {
17   if (xmlhttp.readyState==4 && xmlhttp.status==200)
18     {
19     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
20     }
21   }
22 xmlhttp.open("GET","/ajax/demo_get.asp",true);
23 xmlhttp.send();
24 }
25 </script>
26 </head>
27 <body>
28
29 <h2>AJAX</h2>
30 <button type="button" onclick="loadXMLDoc()">请求数据</button>
31 <div id="myDiv"></div>
32
33 </body>
34 </html>

在上面的例子中,可能得到的是缓存的结果。
为了避免这种情况,请向 URL 添加一个唯一的 ID:

1 xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);

2 xmlhttp.send();

如果希望通过 GET 方法发送信息,请向 URL 添加信息:

1 xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);

2 xmlhttp.send();

POST方法同上

示例:

1 xmlhttp.open("POST","demo_post.asp",true);

2 xmlhttp.send(); 

如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

方法 描述
setRequestHeader(header,value)
向请求添加 HTTP 头。

  • header: 规定头的名称
  • value: 规定头的值

代码示例:

1 xmlhttp.open("POST","ajax_test.asp",true);

2 xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

3 xmlhttp.send("fname=Bill&lname=Gates"); 

异步 - True 或 False?
AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true,否者为false。

当使用 async=false 时,请不要编写 onreadystatechange 函数 - 把代码放到 send() 语句后面即可:

1 xmlhttp.open("GET","test1.txt",false);

2 xmlhttp.send();

3 document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

时间: 2024-08-05 06:49:42

AJAX 的GET和POST方法(向服务器发送请求)的相关文章

AJAX向服务器发送请求

原生的: 1.>:GET请求 $(function () { $("#btnGetDate").click(function () { //开始通过AJAX向服务器发送请求. var xhr; if (XMLHttpRequest) {//表示用户使用的高版本IE,谷歌,狐火等浏览器 xhr = new XMLHttpRequest(); } else {// 低IE xhr=new ActiveXObject("Microsoft.XMLHTTP"); }

【03】AJAX 向服务器发送请求

AJAX 向服务器发送请求 创建 XMLHttpRequest 对象后,就可以向服务器发送请求了. XMLHttpRequest 对象的 open() 方法和 send() 方法用来向服务器发送请求. 注意:AJAX 向服务器发送的是 http 请求,与我们浏览网页时发送的 http 请求一样.我们可以右键查看当前网页的源代码,由很多 HTML.CSS和JavaScript 组成,如果我们使用 AJAX 请求当前的 URL ,返回的内容是一样的.(魔芋:也就是说ajax发送的,和我们平时输入网址

学习-【前端】-angularjs基本框架以及向服务器发送请求的方法

昨天写了个跨域的东西,自己琢磨了下,想到这种方式正好也是之前想的混合app如何交互服务器的解决办法.心里还是蛮开心的.今天又花时间把前端客户端部分的框架做了出来,整合的思路是参照node社区移动端的设计方案,把所有controllers和所有services放到一起,不过请求数据未用$resource也没有用原生的$http,而是使用了restangular,用完这个再把配置文件单独整合到一个文件夹里.整个框架看起来都十分的整洁了. 先给个结构图: 因为是由产品驱动的架构,所以最开始没有使用bo

通过 httpclientget 方法 向服务器中请求数据

/*   * 通过 httpclientget 方法 向服务器中请求数据   */ public String getweb(String username, String userpass, String url) { String str = ""; StringBuffer sb = new StringBuffer(url); sb.append("?username="); sb.append(username); sb.append("&

ajax-向服务器发送请求

ajax-向服务器发送请求 1.将请求发送到服务器,使用XMLHttpRequest对象的 open() 和 send() 方法.     xmlhttp. open(method,url,async) 方法:     method:请求的类型:get 或者 post: url:文件在服务器上的位置(该文件可以是任何类型的文件,比如:.txt,.xml,.asp,.PHP): async: true(异步)或 false(同步)                  注:XMLHttpRequest

向服务器发送请求

向服务器发送请求 1.向服务器发送请求 如需要将请求发送到服务器,我们使用XMLHttpRequest对象的open()和send()方法: xmlhttp.open("GET","test1.txt",true); xmlhttp.send(); 方法解释: (1)open(method,url,async): 规定请求的类型.URL以及是否异步处理请求: method:请求的类型,可以是GET或者POST: url:文件在服务器上的位置: async:true(

在向服务器发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/36425825 SQL Server 2008 + VS2010 用C#编写的代码,进行数据库还原的时候,出错: 错误内容: 在向服务器发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程. 解决方法: 将SQL链接语句构造成如下: string strLink = @"server=.;database=Data

在向服务器发送请求时发生传输级错误。

遇到的问题和原帖差不多,不过是另一种状况,提出来,希望能帮助其他的小伙伴,俺是菜鸟,有不对的地方请多多包涵. 问题状况:恢复数据库的时候,将数据库给脱机 而后联机.再点击其他功能页面的时候,报错提示:在向服务器发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程) 下面的解决方法,解决了问题. 在向服务器发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程) 开始一直以

Android开发:利用AlarmManager不间断向服务器发送请求以及notification通知

一.前言 嗯,其实需求很简单,但是因为服务器不会主动联系客户端,所以客户端必须不间断的向服务器请求以便得到一些数据,突然不知道怎么描述这个问题了,总之,我是通过AlarmManager来实现客户端不断地向服务器发送请求,好吧,往下. 二.实现 客户端不断的发请求,然后通过获得的响应做一些处理就可以了,流程就简简单单的像下面这个图. 第一步:利用AlarmManager开启轮询服务 public class MyAlarmManager { //开启轮询服务 public static void