`
廖世勇
  • 浏览: 100967 次
  • 性别: Icon_minigender_1
  • 来自: 湖南郴州
社区版块
存档分类
最新评论

AJAX - 向服务器发送请求

阅读更多

 

<!--[if !supportLists]-->·                           <!--[endif]-->Previous Page

<!--[if !supportLists]-->·                           <!--[endif]-->Next Page

XMLHttpRequest 对象用于和服务器交换数据。

向服务器发送请求

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

xmlhttp.open("GET","test1.txt",true);

xmlhttp.send();

方法

描述

open(method,url,async)

规定请求的类型、URL 以及是否异步处理请求。

<!--[if !supportLists]-->·                          <!--[endif]-->method:请求的类型;GET POST

<!--[if !supportLists]-->·                          <!--[endif]-->url:文件在服务器上的位置

<!--[if !supportLists]-->·                          <!--[endif]-->asynctrue(异步)或 false(同步)

send(string)

将请求发送到服务器。

<!--[if !supportLists]-->·                          <!--[endif]-->string:仅用于 POST 请求

GET 还是 POST

POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

<!--[if !supportLists]-->·   <!--[endif]-->无法使用缓存文件(更新服务器上的文件或数据库)

<!--[if !supportLists]-->·   <!--[endif]-->向服务器发送大量数据(POST 没有数据量限制)

<!--[if !supportLists]-->·   <!--[endif]-->发送包含未知字符的用户输入时,POST GET 更稳定也更可靠

GET 请求

一个简单的 GET 请求:

xmlhttp.open("GET","demo_get.asp",true);

xmlhttp.send();

亲自试一试

在上面的例子中,您可能得到的是缓存的结果。

为了避免这种情况,请向 URL 添加一个唯一的 ID

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

xmlhttp.send();

亲自试一试

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

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

xmlhttp.send();

亲自试一试

POST 请求

一个简单 POST 请求:

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

xmlhttp.send();

亲自试一试

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

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

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

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

亲自试一试

方法

描述

setRequestHeader(header,value)

向请求添加 HTTP 头。

<!--[if !supportLists]-->·                          <!--[endif]-->header: 规定头的名称

<!--[if !supportLists]-->·                          <!--[endif]-->value: 规定头的值

url - 服务器上的文件

open() 方法的 url参数是服务器上文件的地址:

xmlhttp.open("GET","ajax_test.asp",true);

该文件可以是任何类型的文件,比如 .txt .xml,或者服务器脚本文件,比如 .asp .php (在传回响应之前,能够在服务器上执行任务)。

异步 - True False

AJAX 指的是异步 JavaScript XMLAsynchronous JavaScript and XML)。

XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true

xmlhttp.open("GET","ajax_test.asp",true);

对于 web 开发人员来说,发送异步请求是一个巨大的进步。很多在服务器执行的任务都相当费时。AJAX 出现之前,这可能会引起应用程序挂起或停止。

通过 AJAXJavaScript 无需等待服务器的响应,而是:

<!--[if !supportLists]-->·   <!--[endif]-->在等待服务器响应时执行其他脚本

<!--[if !supportLists]-->·   <!--[endif]-->当响应就绪后对响应进行处理

Async = true

当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数:

xmlhttp.onreadystatechange=function()

  {

  if (xmlhttp.readyState==4 && xmlhttp.status==200)

    {

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

    }

  }

xmlhttp.open("GET","test1.txt",true);

xmlhttp.send();

亲自试一试

您将在稍后的章节学习更多有关 onreadystatechange 的内容。

Async = false

如需使用 async=false,请将 open() 方法中的第三个参数改为 false

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

我们不推荐使用 async=false,但是对于一些小型的请求,也是可以的。

请记住,JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。

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

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

xmlhttp.send();

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

亲自试一试

来自:http://www.w3school.com.cn

 

 

分享到:
评论

相关推荐

    WEB开发 之 AJAX - 向服务器发送请求.docx

    WEB开发之AJAX - 向服务器发送请求 AJAX(Asynchronous JavaScript and XML)是Web开发中的一种技术,用于实现客户端和服务器之间的异步通信。在本文档中,我们将学习如何使用XMLHttpRequest对象向服务器发送请求。...

    jQuery-ajax-用户名异步请求

    Ajax,即Asynchronous JavaScript and XML,允许我们在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容,提供更流畅的用户体验。 在“jQuery-ajax-用户名异步请求”这个场景中,我们可能是在设计一个...

    使用Ajax向PHP服务端发送请求并返回JSON数据

    本文将深入探讨如何使用Ajax向PHP服务端发送请求,并接收JSON格式的数据。 Ajax的核心是JavaScript的XMLHttpRequest对象,它允许我们在不刷新整个页面的情况下与服务器进行通信。以下是一个基本的Ajax请求示例: `...

    谷歌浏览器插件—— Ajax Interceptor

    - **修改请求体**:在发送请求之前,可以更改JSON、文本或表单数据。 - **改变响应**:在接收到服务器响应后,可以修改返回的数据,这对于测试不同情况下的前端逻辑非常有用。 - **设置延迟**:模拟网络延迟,以测试...

    ajax-B.rar

    **JavaScript** 是AJAX的核心,它用于处理用户交互、向服务器发送请求以及更新页面内容。在AJAX-B项目中,JavaScript代码可能包含了定义函数、事件监听器以及处理响应数据的逻辑。JavaScript库如jQuery、Prototype或...

    Ajax发送PUT-DELETE请求时出现错误的原因及解决方案.docx

    当使用Ajax发送PUT或DELETE请求时,最常见的问题是服务器端无法正确地接收到客户端发送的数据。例如,在一个更新员工信息的例子中,前端使用jQuery的`$.ajax()`方法发送PUT请求: ```javascript $.ajax({ url: "${...

    ajax-bridge 以及它在web中的应用

    它封装了这些底层的API,为开发者提供了友好的接口,使得发送请求和处理响应变得更加简单。用户可以通过调用Ajax-Bridge的函数,轻松地发起HTTP请求,并定义相应的回调函数来处理服务器返回的数据。 **在Web中的...

    Laravel开发-ajax-forwarder

    1. 当前端发送一个Ajax请求到Laravel应用时,"ajax-forwarder"会捕获这个请求。 2. 包内部将这个请求转换为新的HTTP请求,目标是远程服务器。 3. 远程服务器处理请求并返回响应。 4. "ajax-forwarder"接收远程服务器...

    ajax--测试

    使用Ajax的基本步骤包括创建XMLHttpRequest对象、打开连接、发送请求以及处理服务器的响应。下面我们将深入探讨这些步骤和相关的知识点: 1. **创建XMLHttpRequest对象**:在JavaScript中,几乎所有的现代浏览器都...

    什么是Ajax?Ajax如何发送请求(详)源码

    Ajax如何发送请求? 原文章: https://blog.csdn.net/weixin_52203618/article/details/131324686 Ajax 是 Asynchronous Javascript And XML 的缩写,它是异步的 Javascript 和 XML技术,是由 Javascript 、 XML 、...

    Ajax 使用JSON向服务器发送数据

    **Ajax 使用JSON向服务器发送数据** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。JSON...

    WXHHDI01-AJAX-B1-GetStarted-CS

    然后调用`send()`方法发送请求,如果是GET请求,参数为空;POST请求时,参数为要发送的数据。 4. **事件监听**:使用`onreadystatechange`事件监听请求状态变化,当`readyState`属性值为4(表示请求已完成)且`...

    ajax-tab(动态加载tab) 切换

    2. Ajax请求:这个事件会触发一个Ajax请求,向服务器发送数据,通常包含用户当前选择的tab标识。 3. 服务器处理:服务器接收到请求后,根据请求参数加载相应的内容,可以是HTML片段、JSON数据或其他格式。 4. 数据...

    掌握 Ajax第 11 部分--服务器端的 JSON.pdf

    当Ajax应用程序向服务器发送请求时,通常是以JSON格式发送数据。服务器端接收到这些数据后,可以轻易地将其解析为本地对象,从而进行进一步的处理。同样,服务器端也可以将数据以JSON格式响应给客户端,这样客户端就...

    ajax-demo-java EE

    3. **发送请求**:调用XMLHttpRequest对象的`open()`和`send()`方法,向服务器发送请求。 4. **监听状态变化**:通过`onreadystatechange`事件,当服务器响应准备好时,执行相应的处理函数。 5. **处理响应**:在...

    ajax-user-name-uniqueness-check.zip_ajax调用

    - **错误处理**:添加错误处理代码,以便在AJAX请求失败时向用户显示友好的错误信息。 - **用户体验**:提供即时反馈,例如显示加载指示器,以及在验证完成后清除或更新输入字段的状态。 以上就是关于"ajax-user-...

    ajax-Popup

    3. **发送异步请求**:使用XMLHttpRequest对象向服务器发送请求,请求可以是GET或POST,请求内容可以是XML、JSON或其他格式的数据。 4. **服务器处理**:服务器接收到请求后,处理数据,生成响应。 5. **接收响应**...

    ajax-control_ajax_ME_

    这个对象是Ajax通信的基础,负责与服务器建立连接并发送请求。 2. **打开连接**:通过`open()`方法设置HTTP请求类型(GET或POST)、URL以及是否异步执行。例如:`xhr.open('GET', 'ajax-control.php', true);` 3. ...

    js-ajax-form-submission-源码.rar

    通过创建XMLHttpRequest对象,JavaScript可以向服务器发送异步请求,并在后台接收响应。 2. **XMLHttpRequest对象**:它是AJAX的核心,负责在后台与服务器进行通信。JavaScript可以通过实例化XMLHttpRequest对象来...

    ajax-demo推送演示例子

    在“ajax-demo”中,可能的实现方式是使用长轮询技术,客户端通过Ajax不断向服务器发送请求,服务器端的Servlet监控特定数据源的变化。一旦有新数据,Servlet立即将数据作为响应返回给客户端,客户端收到响应后更新...

Global site tag (gtag.js) - Google Analytics