zoukankan      html  css  js  c++  java
  • 对ajax基础的掌握随笔

    原始的ajax,在第一个页面定义如下:

     1         function createAjax() {
     2             var xmlhttp;
     3             if (window.ActiveXObject)
     4                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");//对ie浏览器创建
     5             else if (window.XMLHttpRequest)
     6                 xmlhttp = new XMLHttpRequest();//对其他浏览器创建
     7             return xmlhttp;
     8         }
     9     //ajax_POST
    10         function ajaxPOST() {
    11             var xmlhttp = createAjax();//创建
    12             var name = document.getElementById("name").value;
    13             var pwd = document.getElementById("pwd").value;
    14             xmlhttp.open("post", "get.aspx", true);//get/post,  url  ,  是否异步传输
    15             xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //post方式必须加上的一句
    16             xmlhttp.onreadystatechange = function () {    //状态变化时执行的函数
    17 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 18 document.getElementById("result").innerHTML = xmlhttp.responseText; 19 } 20 xmlhttp.send("name="+name+"&pwd="+pwd);//发送 21 } 22 //ajax_GET 23 function ajaxGET() { 24 var xmlhttp = createAjax(); 25 var name = document.getElementById("name").value; 26 var pwd = document.getElementById("pwd").value; 27 xmlhttp.open("get", "get.aspx?name="+name+"&pwd="+pwd, true); 28 xmlhttp.onreadystatechange = function () { 29 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 30 document.getElementById("result").innerHTML = xmlhttp.responseText; 31 } 32 xmlhttp.send(null); 33 }
    onreadyStateChange事件是在readyState属性发生改变时触发的
    readyState的值表示了当前请求的状态,在事件处理程序中可以根据这个值来进行不同的处理。
    readyState有五种可取值0:尚未初始化,1:正在加载,2:加载完毕,3:正在处理;4:处理完毕。一旦readyState属性的值变成了4,就可以从服务器返回的响应数据进行访问了。
    Status存储了服务器端返回的Http请求响应代码,它表示请求的处理结果.
    Http状态码含义:
    200 请求成功
    202 请求被接受但处理未完成
    400 错误请求
    404 请求资源未找到
    500 内部服务器错误

    接着在data.aspx页面cs文件中的PageLoad中写如下代码:

    1             Response.Clear();
    2             string name = Request.QueryString["name"];
    3             string pwd = Request.QueryString["pwd"];
    4             Response.Write("名字是:" + name + "<br />密码是:" + pwd);
    5             Response.End();

    这样,这个ajax程序就完成了。

    有点麻烦是不是?倘若用JQuery的ajax,那么事情变得简单得多。

    data.aspx.cs页面不动,将第一个页面改为:

     1  $(function () {
     2              $("#btn").click(function () {
     3                  var name = document.getElementById("name").value;
     4                  var pwd = document.getElementById("pwd").value;
     5                 $("#result").load("get.aspx?name=" + name + "&pwd=" + pwd, function (responseText, textStatus, XMLHttpRequest) {    //JQueryAjaxGet
     6                     document.getElementById("result").innerHTML = responseText;
     7                 });     //JQueryAjaxGet
     8                 $("#result").load("get.aspx", { "name": name,"pwd":pwd }, function (responseText, textStatus, XMLHttpRequest) {                        document.getElementById("result").innerHTML = responseText;                
     9                 });     //JQueryAjaxPost        
    10          });
    11 });

    可以看到,不需要创建xmlHttp对象,只需要一个load()方法。
    load()方法

    对于get:   url,回调函数(不需要返回success)

    对于post: url,param,回调函数

    回调函数function(responseTest,textStatus,XMLHttpRequest){},其中

    responstTest        //请求返回的内容

    textStatus           //请求状态:success,error

    XMLHttpRequest  //XMLHttpRequest对象

  • 相关阅读:
    python管理包(模块和包的应用)
    简单运行 Jupyter Notebook
    Linux出现“FirewallD is not running”解决办法
    Mindjet MindManager2020切换中文界面的教程
    idea 快捷键汇总
    南怀瑾经典语录
    CentOS 7 安装SonarQube 8.3版本
    Jenkins插件开发完全示例
    Jenkins在Pod中实现Docker in Docker并用kubectl进行部署
    Jenkins的kubernetes-plugin使用方法
  • 原文地址:https://www.cnblogs.com/dengshaojun/p/3289058.html
Copyright © 2011-2022 走看看