`

JS实现AJAX请求_1

阅读更多

JS实现AJAX请求_1(基础篇)

AJAX:全称“Asynchronous JavaScript and XML”   (异步的JavaScript与XML)

 

AJAX请求的特点:

  1,不刷新页面

  2,服务器仅返回需要的数据

 

AJAX引擎:XMLHttpRequest

  此对象是浏览器中的内置对象,在目前的所有浏览器中都支持此对象。

 

IE中获取此对象:

if(window.ActiveXObject){
    var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}

 非IE中获取此对象:

var xmlHttp=new XMLHttpRequest();

 

兼容模式:

var xmlHttp;//声明一个对象
function createXMLHttpRequest(){
    if(window.ActiveXObject){//如果是IE,采用这种方式获取
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }else{//非IE采用这种方式获取
        xmlHttp=new XMLHttpRequest();
    }
}

 

 请求的格式:

  xmlHttp.open(请求方式,请求地址,[是否为异步请求]);

  xmlHttp.send();

 

Get请求:

xmlHttp.open("GET","ajax.do?name=tom",true);
xmlHttp.send();

 注:

get请求的传值方式为请求地址后面跟  ?key=value

 

Post请求:

xmlHttp.open("POST","ajax.do",true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send("name=tom");

 注:

post请求的传值方式是在send()方法中进行传值,多个值用逗号隔开:name=tom,age=12

setRequestHeader的意思是设置请求头的类型为表单类型:Content-Type="application/x-www-form-             urlencoded"  是form表单的默认属性

 

 一个完整的AJAX请求的流程:

  1,创建XMLHttpRequest对象

  2,调用xmlHttp.open()设置请求内容

  3,设置回调函数(根据服务器返回的状态信息,做什么事情)

  4,调用xmlHttp.send()发送请求

function sendAjax(){
    createXMLHttpRequest();//调用上面设置的兼容模式
    xmlHttp.open("GET","ajax.do?name=tom",true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.onreadystatechange=callback;//状态信息发生改变调用函数
    xmlHttp.send();
}

//回调函数
function callback(){
    alert("callback");
}

sendAjax();//浏览器会弹出几次框(不同的浏览器可能不同)

 获取AJAX请求的状态码和HTTP协议的状态码:

 AJAX请求的状态码有四个值:

  var xmlState=xmlHttp.readyState;

  1,已初始化

  2,数据传输中

  3,响应数据传输中

  4,响应完毕

HTTP协议的状态码有很多:

  var httpState=xmlHttp.status;

常见的状态码如下:

状态码 意义
200 服务器正确处理了请求并响应
404 请求的页面未找到
403 没有权限访问请求的页面
405 页面不接收该请求方式
408 请求超时
500 服务器处理请求时发生异常
503 服务暂时不可用
304 网页未修改

 

使用Servlet获取服务器端的文本:

//ajax.do
//这是Servlet类中的doGet方法
public void doGet(HttpServletRequest request,HttpServletResponse response){
    PrintWriter out=response.getWriter();
    out.print("OK");
    out.flush();
    out.close();
}

 

//callback
function callback(){
    if(xmlHttp.readyState==4){//响应完毕后
        if(xmlHttp.status==200){//http状态码为200时
            var result=xmlHttp.responseText;//获取ajax请求的文本内容
            alert(result);
        }
    }
}

 

总结:

  • Ajax请求使用 XMLHttpRequest 对象
  • IE和非IE获取对象的方式不同
  • GET,POST请求的传值问题
  • Ajax请求的流程
  • Ajax请求的状态码和HTTP协议中服务器返回的状态码
  • 获取简单地服务器返回的文本信息

结语:(hunthon:入门级程序员)

        AJAX请求用来处理网页请求是非常棒的技术,本篇博客旨在介绍Ajax的最简单的用法,后续的文章会对Ajax做较详细的描述,文章中如果出现错误请及时向我反馈,希望与大家一起进步。

分享到:
评论

相关推荐

    CAjax.rar_Ajax 留言_ajax_ajax .net_ajax C#_net

    此外,还可以使用jQuery、knockout.js等JavaScript库来处理Ajax请求,它们提供了更简洁的API,减少了代码量。 总之,这个压缩包为学习和实践Ajax技术提供了一个具体的场景——无刷新留言功能,通过C#和.NET框架实现...

    Js拦截全局ajax请求

    在JavaScript开发中,有时我们需要对全局的Ajax请求进行拦截,以便进行统一的处理,比如添加统一的错误处理、数据格式化、性能监控等。这种需求通常可以通过“Ajax Hook”技术来实现。Ajax Hook允许我们捕获并修改...

    AjaxChat_XML_JSON_javascript_chat_ajax_Different_php_

    用户发送的消息会被编码为JSON对象,然后通过Ajax请求发送到PHP服务器,服务器处理这些消息后再将新消息以JSON形式返回给客户端,更新聊天界面。 **AjaxChat_XML**同理,区别在于它使用XML作为数据交换格式。XML...

    实例详解Android Webview拦截ajax请求

    在 Native 端,我们需要实现一个 JavaScript Interface,例如 onAjaxRequest 方法,该方法将接收 Fly.js 传来的请求对象,并完成真正的请求后,将响应对象通过 handler 返回给 Fly.js。 通过这种方式,我们就可以...

    ko.rar_ajax_ajax jsp_javascript_jsp

    在JSP中集成Ajax,我们通常会创建一个JavaScript函数来处理Ajax请求。这个函数可能包括以下步骤: 1. 创建XMLHttpRequest对象:这是Ajax通信的基础,不同的浏览器可能有不同的实现方式,但通常可以通过`new ...

    struts-ajax.zip_ajax struts _javascript_struts ajax_struts-aj_ti

    3. 如何在Struts的Action中处理Ajax请求,以及返回JSON或XML格式的数据。 4. 在JSP页面中使用JavaScript或jQuery进行Ajax调用,以及处理返回的结果。 5. 如何设计和组织MVC架构,使得Struts和Ajax能够有效地协同工作...

    ajax_init_javascript_ajax_

    在JavaScript中,创建一个基本的Ajax请求包括以下步骤: 1. **创建XMLHttpRequest对象**:这是Ajax的核心,它负责与服务器建立连接并发送/接收数据。 ```javascript var xhr = new XMLHttpRequest(); ``` 2. **...

    ajax_example.rar_ajax_ajax html_html ajax

    然而,需要注意的是,由于Ajax请求是异步的,开发者需要处理可能出现的并发问题,确保数据的一致性,并考虑到浏览器的兼容性问题。** **总结来说,"ajax_example.rar"中的示例展示了如何利用Ajax技术进行异步通信,...

    ajax-login.rar_ajax_ajax login_ajax 登陆_login_登陆验证

    2. **事件监听**:使用JavaScript(通常基于jQuery或其他库)添加事件监听器,当用户点击登录按钮时触发Ajax请求。 3. **构建Ajax请求**:使用XMLHttpRequest或现代浏览器提供的fetch API创建异步请求。设置请求的...

    JavaScript语言与Ajax应用第二版_JavaScript语言与Ajax应用_JavaScript应用_javascri

    8. **错误处理与调试**:学习如何有效地处理JavaScript和Ajax请求中的错误,以及使用浏览器的开发者工具进行调试,是提升开发效率和代码质量的重要环节。 9. **jQuery与Ajax**:jQuery是一个流行的JavaScript库,...

    javascript和ajax学习指南 Learn_JavaScript_and_Ajax_with_w3Schools.zip

    JavaScript 和 AJAX 是 web 开发中的两个重要概念,广泛应用于创建交互性强、动态更新的网页。这份"Learn_JavaScript_and_Ajax_with_w3Schools.zip"压缩包包含了一个电子书和一个文本文件,旨在帮助学习者掌握这两种...

    struts-ajax.rar_ajax struts _struts ajax_struts ajax war

    开发者可以从中学到如何配置Struts的Action、Interceptor以及如何编写JavaScript代码来发送Ajax请求,以及如何在后台处理这些请求并返回响应数据。此外,通过分析项目中的JSP页面,还可以了解如何在页面上动态渲染从...

    AjaxChat_Clean_javascript_chat_foughtjzi_ajax_zoodl3_源码.zip

    4. **服务器通信**:服务器端可能采用PHP、Node.js或其他后端语言处理这些Ajax请求,完成消息的存储和检索,并返回结果给客户端。 5. **数据解析**:接收到服务器响应后,解析返回的数据,通常是JSON格式,然后将新...

    smarty+AJAX.rar_ajax_ajax php_php ajax_smarty_smarty ajax

    按钮点击事件中,使用JavaScript编写Ajax请求代码,如设置请求方法(GET或POST)、URL、数据(如果需要)以及回调函数。 2. **Ajax请求**:使用XMLHttpRequest对象,创建一个新的请求,设置请求的URL为Smarty模板...

    AjaxXMLHttpRequest_Demo02.zip

    2. **JavaScript文件**:可能名为script.js或类似,这是处理Ajax请求的主要脚本。在这个文件中,开发者将创建XMLHttpRequest实例,设置请求参数(如URL、HTTP方法、请求头等),并监听其状态变化。当请求完成时,会...

    extjs ajax同步请求所需js

    标题中提到的"extjs ajax同步请求所需js"是指ExtJS框架中用于执行同步Ajax请求的相关JavaScript代码。在ExtJS中,Ajax请求通常通过`Ext.Ajax`对象来实现。与传统的异步请求不同,同步请求会阻塞浏览器,直到请求完成...

    Ajax+JSP.rar_ajax_ajax jsp download_java ajax jsp_jsp ajax_jsp在线

    1. `listajax.html` 可能是一个展示列表的页面,其中包含触发Ajax请求的按钮或链接。 2. `postajax.jsp` 是接收Ajax请求的JSP页面,处理请求后返回数据。 3. `www.pudn.com.txt` 可能是下载链接或参考文档,可能与...

    ajax实现无刷新对数据库的操作(表格版).zip_ajax 表格_ajax 无刷新_ajax 表格_ajax 表格 数据_表

    【Ajax 实现无刷新对数据库操作】是一种现代Web开发中的技术组合,主要用于创建更快速、更互动的用户体验。Ajax(Asynchronous JavaScript and XML)的核心在于,它允许网页在不重新加载整个页面的情况下与服务器...

    asp+ajax.rar_ajax_ajax a_ajax asp_asp aja_asp+ajax

    jQuery提供了易于使用的接口来处理AJAX请求,如`$.ajax()`、`$.get()`和`$.post()`函数。在这个项目中,JavaScript可能用于捕获用户交互,如点击按钮,然后触发AJAX请求。 3. **ASP服务器端处理**:在服务器端,ASP...

Global site tag (gtag.js) - Google Analytics