原生及jq方式使用ajax
1.原生js实现Ajax方法:
var Ajax={get: function (url,fn){var obj=new XMLHttpRequest(); // XMLHttpRequest对象用于在后台与服务器交换数据 obj.open('GET',url,true); obj.onreadystatechange=function(){ if (obj.readyState == 4 && obj.status == 200 || obj.status == 304) { // readyState==4说明请求已完成 fn.call(this, obj.responseText); //从服务器获得数据 } }; obj.send(null); }, post: function (url, data, fn) { var obj = new XMLHttpRequest(); obj.open("POST", url, true); obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // 发送信息至服务器时内容编码类型 obj.onreadystatechange = function () { if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { // 304未修改 fn.call(this, obj.responseText); } }; obj.send(data); } }
注释:
a.open() 方法需要三个参数:
第一个参数定义发送请求所使用的方法(GET 还是 POST)。与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
第二个参数规定服务器端脚本的 URL(该文件可以是任何类型的文件,比如 .txt 和 .xml,或者服务器脚本文件,比如 .asp 和 .php (在传回响应之前,能够在服务器上执行任务))。
第三个参数规定应当对请求进行异步地处理(true(异步)或 false(同步))。
b.send() 方法可将请求送往服务器。
c.onreadystatechange 属性存有处理服务器响应的函数。
d.readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。
2.jq方式实现Ajax方法:
$(document).ready(function(){ $("#search").click(function(){ $.ajax({ type: "GET", url: "http://127.0.0.1:8080/ajaxdemo/serverjson2.php?number=" + $("#keyword").val(), dataType: "json", success: function(data) { if (data.success) { $("#searchResult").html(data.msg); } else { $("#searchResult").html("出现错误:" + data.msg); } }, error: function(jqXHR){ alert("发生错误:" + jqXHR.status); }, }); }); $("#save").click(function(){ $.ajax({ type: "POST", url: "serverjson.php", data: { name: $("#staffName").val(), number: $("#staffNumber").val(), sex: $("#staffSex").val(), job: $("#staffJob").val() }, dataType: "json", success: function(data){ if (data.success) { $("#createResult").html(data.msg); } else { $("#createResult").html("出现错误:" + data.msg); } }, error: function(jqXHR){ alert("发生错误:" + jqXHR.status); }, }); }); });
注:
type:类型,“POST”或者“GET”,默认为“GET”
url:发送请求的地址
data:是一个对象连同请求发送到服务器的数据
dataType:预期服务器返回的数据类型。如果不指定,jQuery将自动根据包含HTTP包MIME信息来智能判断,一般我们采用json格式,可以设置为“json”
success:是一个方法,请求成功后的回掉函数。传入返回后的数据,以及包含成功代码的字符串
error:是一个方法,请求失败时调用此函数。传入XMLHttpRequest对象
转载于:https://www.cnblogs.com/rushjs/p/7094621.html
原生及jq方式使用ajax相关推荐
- Ajax和JSON-学习笔记01【原生JS方式实现Ajax】
Java后端 学习路线 笔记汇总表[黑马程序员] Ajax和JSON-学习笔记01[原生JS方式实现Ajax] Ajax和JSON-学习笔记02[JQuery方式实现Ajax] Ajax和JSON-学 ...
- 原生js获取html元素属性,JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)...
JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...
- jq ajax请求php原声,原生JS与jQuery对AJAX的实现
原生JS与jQuery对AJAX的实现 一.定义 W3C里这么解释AJAX: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). ...
- jQuery学习第三天(插件库、引入页面、jQ中的ajax)
插件库 superSlide.swiper 轮播图插件的网站,有说明书 jQ入口函数 $(document).ready(function(){}) 简写:$(function(){}); 与原生js ...
- Ajax和JSON-学习笔记02【JQuery方式实现Ajax】
Java后端 学习路线 笔记汇总表[黑马程序员] Ajax和JSON-学习笔记01[原生JS方式实现Ajax] Ajax和JSON-学习笔记02[JQuery方式实现Ajax] Ajax和JSON-学 ...
- js 原生将元素插入到父元素首位,jquery和原生两种方式
一般来说我们新加的元素会放置到父元素的首位 但也有放到首位的那种可能,每次追加元素 放到最前面 业务还是有这种需求的 可能 用jquery的童鞋 会对 append 这个方法很熟悉 当然 用框架 ...
- 使用axios方式实现Ajax请求
项目已开源至gitee:https://gitee.com/guo-qianliang/es6-vue-node.js 项目已开源至github:https://github.com/Guoqianl ...
- Android原生定位实现方式
Android原生定位实现方式 1.Appium+MuMu模拟器实现 2.uiautomatorviewer.bat+MuMu模拟器实现 3.weditor+MuMu模拟器实现 4.weditor+真 ...
- 042原生的自引用方式实现多级数据渲染
042原生的自引用方式实现多级数据渲染 给组件新增一个name属性name: 'Tree'; 组件内引用自身 <Tree v-if="item &&item.id &a ...
最新文章
- 资源 | 2018年值得关注的200场机器学习会议(建议收藏)
- 项目进度管理和项目成本管理作业
- Java基础-集合:set
- hashcode、equals和==简单总结
- ubuntu LAMP安装
- 【团队】 冲刺一(9/10)
- java访问控制度_菜鸡的Java笔记 - java 访问控制权限
- [转载] LinkedIn架构这十年
- 5.OD-条件断点、条件记录断点
- oracle 动态游标行数,oracle动态游标的简单实现方法
- java 6 update 3_Java(TM) 6 Update(java运行环境) V 6.0.450.6 官方版
- ucosii中消息队列、消息邮箱、信号量的区别
- React开发(123):ant design学习指南
- 轨道病害视觉检测:背景、方法与趋势
- bzoj 5029 poj 2528 nyoj 1009: 贴小广告(线段树)
- linux编写脚本的基本方法
- JAVA项目管理ppt_【干货】超实用项目管理ppt项目管理ppt
- JAVA设计模式征服之路-00-设计模式简介
- 单片机断电记忆方法C语言,怎样使单片机程序断电保留上次的数据?
- 《信号与系统》(吴京)部分课后习题答案与解析——第三章(连续LTI系统的时域分析)