1、JS的AJAX

AJAX,Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。
如果要让用户留在当前页面中,同时发出新的HTTP请求,就必须用JavaScript发送这个新请求,接收到数据后,再用JavaScript更新页面,这样一来,用户就感觉自己仍然停留在当前页面,但是数据却可以不断地更新。
即,为了实现局部刷新。
JS中如果使用AJAX,在主流浏览器上主要依靠 XMLHttpRequest 对象(IE略不同):
function success(text) { var textarea = document.getElementById('test-response-text');textarea.value = text;
}function fail(code) {var textarea = document.getElementById('test-response-text');textarea.value = 'Error code: ' + code;
}var request = new XMLHttpRequest(); // 新建XMLHttpRequest对象request.onreadystatechange = function () { // 状态发生变化时,函数被回调if (request.readyState === 4) { // 成功完成// 判断响应结果:if (request.status === 200) {// 成功,通过responseText拿到响应的文本:return success(request.responseText);} else {// 失败,根据响应码判断失败原因:return fail(request.status);}} else {// HTTP请求还在继续...}
}// 发送请求:
request.open('GET', '/api/categories');
request.send();alert('请求已发送,请等待响应...');
32
1
function success(text) { 

2
    var textarea = document.getElementById('test-response-text');

3
    textarea.value = text;

4
}

5
6
function fail(code) {

7
    var textarea = document.getElementById('test-response-text');

8
    textarea.value = 'Error code: ' + code;

9
}

10
11
var request = new XMLHttpRequest(); // 新建XMLHttpRequest对象

12
13
request.onreadystatechange = function () { // 状态发生变化时,函数被回调

14
    if (request.readyState === 4) { // 成功完成

15
        // 判断响应结果:

16
        if (request.status === 200) {

17
            // 成功,通过responseText拿到响应的文本:

18
            return success(request.responseText);

19
        } else {

20
            // 失败,根据响应码判断失败原因:

21
            return fail(request.status);

22
        }

23
    } else {

24
        // HTTP请求还在继续...

25
    }

26
}

27
28
// 发送请求:

29
request.open('GET', '/api/categories');

30
request.send();

31
32
alert('请求已发送,请等待响应...');

2、jQuery的AJAX

而jQuery中使用AJAX方法的话就简单多了,设置项也简单明了,例如通过AJAX加载一段文本:
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button id="b01" type="button">Change Content</button>//jQuery操作
$(document).ready(function(){$("#b01").click(function(){htmlobj=$.ajax({url:"/jquery/test1.txt",async:true});$("#myDiv").html(htmlobj.responseText);});
});
10
1
<div id="myDiv"><h2>Let AJAX change this text</h2></div>

2
<button id="b01" type="button">Change Content</button>

3
4
//jQuery操作

5
$(document).ready(function(){

6
  $("#b01").click(function(){

7
    htmlobj=$.ajax({url:"/jquery/test1.txt",async:true});

8
    $("#myDiv").html(htmlobj.responseText);

9
  });

10
});

jQuery中ajax方法的语法是:
jQuery.ajax(url, [settings])
1
1
jQuery.ajax(url, [settings])

settings,可选。用于配置 Ajax 请求的键值对集合,常用选项如下:
  • async:是否异步执行AJAX请求,默认为true,千万不要指定为false
  • method:发送的Method,缺省为'GET',可指定为'POST'、'PUT'等
  • contentType:发送POST请求的格式,默认值为'application/x-www-form-urlencoded; charset=UTF-8',也可以指定为text/plain、application/json
  • data:发送的数据,可以是字符串、数组或object。如果是GET请求,data将被转换成query附加到URL上,如果是POST请求,根据contentType把data序列化成合适的格式
  • headers:发送的额外的HTTP头,必须是一个object
  • dataType:接收的数据格式,可以指定为'html'、'xml'、'json'、'text'等,缺省情况下根据响应的Content-Type猜测
实际上,因为get和post极其常用,jQuery对这两者还额外提供了方法 $.get() 和 $.post(),这两者的语法都类似:
//get
jQuery.get(url, data, success(response,status,xhr), dataType)//post
jQuery.post(url, data, success(data, textStatus, jqXHR), dataType)
5
1
//get

2
jQuery.get(url, data, success(response,status,xhr), dataType)

3
4
//post

5
jQuery.post(url, data, success(data, textStatus, jqXHR), dataType)

它们都是简写的ajax函数,其中:
  • url:必需。规定把请求发送到哪个 URL
  • data:可选。映射或字符串值。规定连同请求发送到服务器的数据
  • success(data, textStatus, jqXHR):可选。请求成功时执行的回调函数
  • dataType:可选。规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或 html)
示例:
//使用 ajax 请求发送表单数据:
$.post("test.php", $("#testform").serialize());//输出来自请求页面 test.php 的结果(HTML 或 XML,取决于所返回的内容)
$.post("test.php", function(data){alert("Data Loaded: " + data);});//获得 test.php 页面返回的 json 格式的内容
$.post("test.php", { "func": "getNameAndTime" },function(data){alert(data.name); // Johnconsole.log(data.time); //  2pm}, "json");
x
1
//使用 ajax 请求发送表单数据:

2
$.post("test.php", $("#testform").serialize());

3
4
//输出来自请求页面 test.php 的结果(HTML 或 XML,取决于所返回的内容)

5
$.post("test.php", function(data){

6
   alert("Data Loaded: " + data);

7
 });

8
9
//获得 test.php 页面返回的 json 格式的内容

10
$.post("test.php", { "func": "getNameAndTime" },

11
   function(data){

12
     alert(data.name); // John

13
     console.log(data.time); //  2pm

14
   }, "json");

转载于:https://www.cnblogs.com/deng-cc/p/6686021.html

06jQuery-06-AJAX相关推荐

  1. ajax 导致 css 延迟_AJAX远离404

    Ajax简单认识 Ajax简介 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. ajax Part 01 应该具备哪些知识 在继续学习之前,您需要对下面的知识有基本的了解: ...

  2. MVC之Ajax如影随行

    一.Ajax的前世今生 我一直觉得google是一家牛逼的公司,为什么这样说呢?<舌尖上的中国>大家都看了,那些美食估计你是百看不厌,但是里边我觉得其实也有这样的一个哲学:关于食材,对于种 ...

  3. 爬虫与反爬虫系统的设计思路与策略

    爬虫与反爬虫系统的设计思路与策略 常用的爬虫工具 01 封IP 02 封User-Agent 03 封Cookie 04 javascript渲染 05 验证码验证 06 ajax异步传输 07 图片 ...

  4. asp.net ajax中文乱码的解决?2010-01-19 12:06

    asp.net ajax中文乱码的解决? 2010-01-19 12:06 以前没怎么仔细的研究过ajax,只是用到了就直接拿过来用,发现了问题再找解决方法.以下是我在找解决问题的过程中的一点小小的总 ...

  5. ajax+++fc,06. 实做AJAX(SEFC)

    下面我们通过实做AJAX对Dorado7中的AJAX操作做一定的了解. 页面功能描述: 首先我们设计一个Spring的JavaBean: 页面上放置三个按钮:button1, button2, but ...

  6. GWT - GWT Designer开发Ajax应用 (06) - 常用控件使用

    http://blog.csdn.net/pathuang68/article/details/4272424 概要说明: Tab.RadioButton和ComboBox的使用方法. 1. 创建一个 ...

  7. ajax发送动态字符传,如何发送ajax请求文件与其他字符串的变量?

    我想创建ajax调用并发送数据与文件和其他变量,我也使用django,如果它的帮助.如何发送ajax请求文件与其他字符串的变量? 我尝试: js文件: $("#save-new-reques ...

  8. 通过jQuery调用ASP.NET的AJAX

    传统上,在ASP.NET页面中实现AJAX的方法是拖放一个ScriptManager控件,并进行一系列的设置和相关编程.但事实上,这并不是理想的解决方案.使用jQuery来调用ASP.NET后台的方法 ...

  9. PHP 利用AJAX获取网页并输出(原创自Zjmainstay)

    看点: 1.file_get_contents超时控制. 2.页面编码判断. 3.键盘Enter键捕捉响应. 4.键盘event兼容处理.//event = event || window.event ...

  10. php ajax 概率 转盘,php+jquery实现转盘抽奖 概率可任意调

    转盘抽奖,炫丽的一般是flash做的.不懂flash而又不需要那么炫丽,可以简单的通过jquery来实现.网上教程有很多,跟着做了一下,也贴出来吧.要实现转盘抽奖,有两个关键点,一是让转盘或指针转起来 ...

最新文章

  1. SEO的操作流程梗概
  2. synchronized不能锁静态变量_肝了一下午的 Synchronized 解析!
  3. 计算机网络校园网建设设计摘要,计算机网络专业论文校园网建设设计.doc
  4. mysql outfile 变量_转mysql dumpfile 与 outfile 函数的区别
  5. 12月25日服务器例行维护公告,12月25日维护公告 技能修改测试
  6. 看完豁然开朗!美团java面试难吗
  7. 注册cn域名应该注意些什么
  8. linux中,使用cat、head、tail命令显示文件指定行
  9. 如何在 Mac 上查找路由器 IP 地址?
  10. 强大,腾讯开源前后端接口开发工具!
  11. Idea使用SVN下载运行项目
  12. threejs特效:边缘暗角shader
  13. python爬虫基础教程115_python爬虫分析:115网盘的模拟登录
  14. the little Redis book
  15. curl的HTTP参数速查表
  16. c语言正弦函数求导,正弦函数求导公式基本推导
  17. 360与腾讯之争之厚黑学分析
  18. 只因一段代码全公司200多人被捕,爬虫敲响警钟!
  19. Codeforces Gym 101086 M ACPC Headquarters : AASTMT (Stairway to Heaven)
  20. DirectoryInfo(查询)---遍历指定文件夹下所有文件及文件夹

热门文章

  1. eclipse各个版本的区别
  2. Notification使用详解之三:通过服务更新进度通知在Activity中监听服务进度
  3. SQL Server复制功能 巧妙选择避开Bug
  4. linux 中网卡配置命令 ifconfig简介
  5. asp.net 2.0中允许一次上传多个文件的设计
  6. c++ 删除文件_win7 系统电脑C盘哪些文件可以删除掉?
  7. python 日志输出变量_python中记录打印的log模块logging的用法实例
  8. 6-7Pytorch搭建cifar10训练脚本(上)
  9. java利用循环打印AVA,JAVA语言-AVA文件流
  10. mysql varchar json_谈谈 MySQL 的 JSON 数据类型