• 简易解析ajax,javascript-XMLHttpRequest


    XMLHttpRequest可以提供不重新加载页面的情况下更新网页

    1. <!DOCTYPE html>  
    2.   
    3. <html xmlns="http://www.w3.org/1999/xhtml">  
    4. <head runat="server">  
    5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    6.     <script src="jquery-1.7.min.js" type="text/javascript"></script>  
    7.     <title>解析XMLHttpRequest</title>  
    8. </head>  
    9. <body>  
    10.     <form id="form1" runat="server">  
    11.         <div>  
    12.             <input type="text" name="search" id="search" />  
    13.             <input type="button" name="go" id="go" value="搜索" />  
    14.             <div id="result"></div>  
    15.         </div>  
    16.     </form>  
    17. </body>  
    18. </html>  
    19. <script type="text/javascript">  
    20.     var xhr = null;  
    21.     $(function () {  
    22.         $("#go").click(function () {  
    23.             var str = $("#search").val();  
    24.             if ($.trim(str) == "") {  
    25.                 $("#result").html("请输入要搜索的内容.");  
    26.             }  
    27.             else {  
    28.                 _search(str);  
    29.             }  
    30.         });  
    31.     });  
    32.     function _search(str) {  
    33.         // 对于 IE7+, Firefox, Chrome, Opera, Safari    
    34.         if (window.XMLHttpRequest) {  
    35.             xhr = new XMLHttpRequest();  
    36.         }  
    37.             //对于 IE6, IE5    
    38.         else if (window.ActiveXObject) {  
    39.             xhr = new ActiveXObject("Microsoft.XMLHTTP");  
    40.         }  
    41.         else {  
    42.             //xhr = new ActiveXObject("Msxml2.XMLHTTP");  
    43.             $("#result").html("您的浏览器不支持XMLHttpRequest");  
    44.         }  
    45.         xhr.onreadystatechange = _CallBack;  
    46.         xhr.open("post", "/Search.aspx?q=" + str, true);  
    47.         xhr.send();  
    48.     }  
    49.     function _CallBack() {  
    50.         if (xhr.readyState == 4 && xhr.status == 200) {  
    51.             $("#result").html(xhr.responseText);  
    52.         }  
    53.     }  
    54. </script>  


    //search.aspx.cs

    1. using System;  
    2.   
    3. namespace MyAjax  
    4. {  
    5.     public partial class Search : System.Web.UI.Page  
    6.     {  
    7.         protected override void OnPreInit(EventArgs e)  
    8.         {  
    9.             if (!IsPostBack)  
    10.             {  
    11.                 if (Request.QueryString["q"] != null)  
    12.                 {  
    13.                     string str = Request.QueryString["q"].ToString().Trim();  
    14.                     //清空输出  
    15.                     Response.Clear();  
    16.                     //设置页面无缓存  
    17.                     Response.Buffer = true;  
    18.                     Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);  
    19.                     Response.Expires = 0;  
    20.                     Response.CacheControl = "no-cache";  
    21.                     Response.AppendHeader("Pragma""No-Cache");  
    22.                     Response.Cache.SetNoStore();  
    23.                     Response.ClearContent();  
    24.                     //输出  
    25.                     Response.Write("您是不是要找:<br />" + str);  
    26.                     //结束输出  
    27.                     Response.End();  
    28.                 }  
    29.             }  
    30.         }  
    31.     }  
    32. }  



    //方法

    abort()

    取消当前响应,关闭连接并且结束任何未决的网络活动。

    这个方法把 XMLHttpRequest 对象重置为 readyState 为 0 的状态,并且取消所有未决的网络活动。例如,如果请求用了太长时间,而且响应不再必要的时候,可以调用这个方法。


    getAllResponseHeaders()

    把 HTTP 响应头部作为未解析的字符串返回。

    如果 readyState 小于 3,这个方法返回 null。否则,它返回服务器发送的所有 HTTP 响应的头部。头部作为单个的字符串返回,一行一个头部。每行用换行符 "" 隔开。


    getResponseHeader()

    返回指定的 HTTP 响应头部的值。其参数是要返回的 HTTP 响应头部的名称。可以使用任何大小写来制定这个头部名字,和响应头部的比较是不区分大小写的。

    该方法的返回值是指定的 HTTP 响应头部的值,如果没有接收到这个头部或者 readyState 小于 3 则为空字符串。如果接收到多个有指定名称的头部,这个头部的值被连接起来并返回,使用逗号和空格分隔开各个头部的值。


    open()

    //open(method, url, async, username, password)

    初始化 HTTP 请求参数,例如 URL 和 HTTP 方法,但是并不发送请求。


    send()

    发送 HTTP 请求,使用传递给 open() 方法的参数,以及传递给该方法的可选请求体。


    setRequestHeader()

    向一个打开但未发送的请求设置或添加一个 HTTP 请求。

    //属性

    状态
    名称
    描述
    0
    Uninitialized
    初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。
    1
    Open
    open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
    2
    Send
    Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
    3
    Receiving
    所有响应头部都已经接收到。响应体开始接收但未完成。
    4
    Loaded
    HTTP 响应已经完全接收。
  • 相关阅读:
    BMIDE开发Soa Services提供给AWC端调用
    TC的Bom行解包和打包的方法
    Java判断一个对象是否是数组
    eclipse里快捷键alt+/不起作用的问题
    脚本实现dwg转PDF的方法--》右键
    Postman设置环境变量
    js滚轮事件兼容写法
    转换时间戳,兼容webkit和IE
    根据对象,返回'&键名=值&键名=值‘形式
    layui 时间插件laydate中动态设置改变min和max值
  • 原文地址:https://www.cnblogs.com/web100/p/ajax-javascript-XMLHttpRequest.html
Copyright © 2020-2023  润新知