博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生ajax
阅读量:4626 次
发布时间:2019-06-09

本文共 3206 字,大约阅读时间需要 10 分钟。

概述:原生Ajax实现使用的是系统内置的构造函数XMLHttpRequest()

 

一、get请求

 第一种:

$("button").click(function (argument) { $.get("result/ajax.php?name="+$("input:eq(0)").val()+"&password="+$("input:eq(1)").val(),function (data) {               alert(data);           })     })

第二种:

$("button").click(function (argument) {         $.get("result/ajax.php",{                    "name":$("input:eq(0)").val(),                    "password":$("input:eq(1)").val()         },function (data) {             alert(data);         })     })

 第三种:

$("button").click(function (argument) {         $.ajax({               "url":"result/ajax.php",//数据传递到哪里               "type":"get",//请求方式(get,post)都行                "data":{      //data对应的value是一个JSON->向服务器传递的数据                     "name":$("input:eq(0)").val(),                     "password":$("input:eq(1)").val()               },               "success":function (data) { //响应成功的回调函数                    alert(data);               }       })     })

二、post请求

第一种:

 

$("button").click(function (argument) {         $.post("result/ajax.php",{                    "name":$("input:eq(0)").val(),                    "password":$("input:eq(1)").val()         },function (data) {             alert(data);         })       })

第二种:

$("button").click(function (argument) {         $.ajax({               "url":"result/ajax.php",//数据传递到哪里               "type":"post",//请求方式(get,post)都行                "data":{      //data对应的value是一个JSON->向服务器传递的数据                     "name":$("input:eq(0)").val(),                     "password":$("input:eq(1)").val()               },               "success":function (data) { //响应成功的回调函数                    alert(data);               }       })     })

三、原生Ajax的缓存问题

概述:浏览器是有缓存机制,你会发现你访问过的一些网页,在访问的使用会快很多,因为现在本地查询,如果没有在发起请求;

var h1 = document.getElementsByTagName("h1")[0];     //发起GET请求     if (window.XMLHttpRequest) {          var xhr = new XMLHttpRequest();     }else{         var xhr = new ActiveXObject("msxml2.0.XMLHTTP");     }     //监听事件     xhr.onreadystatechange = function () {          if (xhr.readyState==4) {               if (xhr.status ==200||xhr.status==304) {                      h1.innerHTML = xhr.responseText;               }          }     }     xhr.open("get","result/info.txt?a="+Math.random(),true);     xhr.send();

 三、URI

 

概述:URLUiniform Rsource Location)网络资源定位符。

 

 什么是URI

 

 答:是对URL的一种规定、规范;这种规定当中规定URL当中只能出现字母、数字并没有汉字;

 

http://127.0.0.1/ajax-day2/0_2%E5%8E%9F%E7%94%9FAjax-%E7%BC%93%E5%AD%98%E9%97%AE%E9%A2%98.html

 

提示:虽然你在地址栏当中看到了汉字,但是你会发现,浏览器帮咱们进行了转码。

提示:浏览器已经帮我们做了解码、转码的事情了,传递的参数可以是汉字;

       因为浏览器的底层就用用这两个方法实现的转码解码问题;

encodeURIComponent():将汉字转码

decodeURIComponent():将转码的汉字解码

四、原生Ajax函数的封装

 

概述:因为原生的Ajax发起请求需要拼接字符串,因为看着比较麻烦,因此我们需要将queryString部分进行封装;

 

//函数的封装部分 function queryString(json) {          var arr = [];         for(k in json){                 arr.push(k+"="+json[k]);         }        return arr.join("&"); }封装的函数使用部分 

 

提示:封装QueryString函数,就是为了方便我们在原生的Ajax的时候向服务器传递数据;

 

 

提示①原生POST请求,向服务器传递数据,不能在地址的后面拼接字符串;

       ②需要在send()传递数据,因为send方法相当于是报文体

       ③设置请求头(GET不需要设置请求头)

       setRequestHeader(‘content-type’,’application/x-www-form-urlencoded’)

       ④请求头的设置只能在open函数与send函数之间,其余的地方不可以报错;

注意:原生的Ajax在开发当中不会使用的,但是面试经常问道就绪状态0-4

转载于:https://www.cnblogs.com/smivico/p/7953846.html

你可能感兴趣的文章
java类路径classpath和包
查看>>
Oracler读取各种格式的相关日期格式
查看>>
Python学习札记(三十六) 面向对象编程 Object Oriented Program 7 __slots__
查看>>
iOS 时间和时间戳之间转化
查看>>
【整理】C#文件操作大全(SamWang)
查看>>
如何从数据库生成 EF Code First model
查看>>
box2dweb基础
查看>>
2013年3月4号
查看>>
jQuery 模拟 ubuntu 3D desktop 的 Dodge Effect 效果
查看>>
QT Creator 快速入门教程 读书笔记(一)
查看>>
CNN之yolo目标检测算法复习总结
查看>>
day17,模块的导入
查看>>
JavaScript网站设计实践(三)设计有特色的主页,给主页链接添加JavaScript动画脚本...
查看>>
Windows系统架构
查看>>
单链表上查找算法的实现(0955) swust-oj
查看>>
AU版有锁机的福利,704越狱彻底解决+86问题,完美IM/FT,重启不掉APN设置
查看>>
PCA的数学原理
查看>>
Flask Web Development —— Web表单(上)
查看>>
Struts2标签
查看>>
PHP知识结构
查看>>