JQuery(三)-- AJAX的深入理解以及JQuery的使用
HTTP
HTTP
http: 超文本传输协议。特点: 简单、快速、灵活、无状态、无连接
URL: 统一资源定位符。
组成:协议名://主机IP:端口号/项目资源地址?传递参数的键值对#锚点
①ip地址在同一个网段是唯一的。如果是在公网中,整个公网的ip是唯一的。
②端口号默认是:80,可以省略不写。常见的端口号:8080---tomcat,80---Apache
③本机IP: localhost 或者 127.0.0.1
常见的状态码:
1XX:信息状态码
        100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
2XX:成功状态码
        200 OK 正常返回信息
        201 Created 请求成功并且服务器创建了新的资源
        202 Accepted 服务器已接受请求,但尚未处理
3XX:重定向
        301 Moved Permanently 请求的网页已永久移动到新位置。
        302 Found 临时性重定向。
        303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
        304 Not Modified 自从上次请求后,请求的网页未修改过。
4XX:客户端错误
        400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
        401 Unauthorized 请求未授权。
        403 Forbidden 禁止访问。
        404 Not Found 找不到如何与 URI 相匹配的资源。
5XX: 服务器错误
        500 Internal Server Error 最常见的服务器端错误。
        503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。
JSON对象和JS字符串
1.JSON对象: JSON对象就是键值对的集合,键与值之间用冒号分隔,多对键值对之间用逗号分隔。
注意:JSON对象,要求键必须是双引号包裹的字符串。用单引号无效。
2.JSON字符串:将JSON对象,用字符串的形式进行包裹。
3.JSON对象与JSON字符串的互相转换。
①对象 --> 字符串:JSON.stringify();
②字符串 --> 对象:JSON.parse();
JQuery也提供了字符串转对象的方法:$.parseJSON();
                                 var jsonObj = {
                                     "name" : "zhangsan",
                                     "age" : "12",
                                     "sex" : "男"
                                 };
                                 //JSON字符串
                                 var jsonObj1 = '{"name" : "zhangsan","age" : "12","sex" : "男"}';
                                 var jsonObj2 = "{\"name\" : \"zhangsan\",\"age\" : \"12\",\"sex\" : \"男\"}";
                                 //JS中将JSON字符串转化成JSON对象
                                 console.log(JSON.parse(jsonObj1));
                                 //JS中将JSON对象转化成JSON字符串
                                 console.log(JSON.stringify(jsonObj));
                                 //JQuery中将JSON字符串转化成JSON对象
                                 console.log($.parseJSON(jsonObj2));
4.JSON数组:将多个JSON对象组成数组的形式存放,称为JSON数组。
JSON数组可以和JSON对象相互嵌套,也就是说JSON对象的值可以是JSON数组。
var jsonArr = [
{
"name":"zhangsan",
"hobby":[{"0":"0"},{"1":"1"}]
},
{
"name":"zhangsan",
"hobby":[{"0":"0"},{"1":"1"}]
},
{
"name":"zhangsan",
"hobby":[{"0":"0"},{"1":"1"}]
}
];
AJAX
AJAX:Asynchronous Javascript And XML(异步的Javascript和XML)。
AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
Ajax应用场景:
场景1 数据验证
场景2 按需取数据
场景3 自动更新页面
JQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是load()、$.get()和$.post()方法,第3层就是$.getScript()和$.getJSON()方法。
1、load()方法:载入HTML文档
load()方法是jQuery中最为简单和常用的Ajax方法,能载入远程HTML代码并插入DOM中。它的结构为:load(url[,data][,callback]);
| 参数名称 | 类型 | 说明 | 
| url | String | 请求HTML页面的URL地址 | 
| data(可选) | Object | 发送至服务器的key/value数据,JSON字符串 | 
| callback(可选) | Function | 请求完成时的回调函数,无论请求成功还是失败,加载完成后会执行函数 | 
type:表示ajax请求的方法,可以是get和post。
url:表示请求的后台URL地址。
success:表示请求成功的回调函数。回调函数接收三个参数:参数1--请求成功接受的数据。
error:当请求失败时,执行的回调函数。
complete:请求完成后,无论成功还是失败都会执行的函数。
statusCode:接收一个对象,对象的键是各种状态码,对象的值表示每种状态码对应的回调函数。
async:设为true为异步,false为同步。默认是true
data:请求时,向后台传递的数据,是一个对象类型,以键值对的形式分别表示name:value
dataType:预期返回的数据类型格式。常见的有JSON/text/html
timeout:设置请求超时时间。
注意:使用数据时,需要注意返回的数据是JSON字符串还是JSON对象。
| 方法 | 作用 | 
| url | 请求的地址 | 
| type | 请求的方式 | 
| dataType | 告诉jQuery,需要按照什么格式对服务器返回的数据进行解析,默认json。 | 
| async | 设为true表示异步请求,设为false表示同步请求。默认为true | 
| data | 往后台传递的数据 | 
| success | 请求成功的回调函数,返回data数据 | 
| error | 请求失败的回调函数 | 
| beforeSend | 请求发送之前调用的函数 | 
| complete | 不论请求是成功还是失败的,只要请求完成就会调用 | 
| statusCode | 接收一个对象,对象的键是各种状态码,对象的值表示每种状态码对应的回调函数。 | 
| timeout | 设置请求超时时间 | 
                                 $.ajax({
                                     type:"get",
                                     url:"java1801.json",
                                     async:true,
                                     dataType:"json",
                                     data:{"name":"张三","age":12},
                                     success:function(data,textStatus,jqXRM){
                                         console.log(data);
                                         console.log(textStatus);
                                         console.log(jqXRM);
                                         console.log(jqXRM.responseText);
                                         console.log(jqXRM.responseJSON);
                                     },
                                     error:function(XMLHttpRequest, textStatus, thrownError){
                                         console.log(XMLHttpRequest);
                                         console.log(textStatus);
                                         console.log(thrownError);
                                     },
                                     complete:function(XMLHttpRequest, textStatus){
                                         console.log(XMLHttpRequest);
                                         console.log(textStatus);
                                     },
                                     statusCode:{
                                         200:function(){
                                             console.log("请求成功");
                                         },
                                         404:function(){
                                             console.log("请求失败");
                                         }
                                     },
                                     timeout:200
                                 });
[JS中的同源策略]
  在JS中,当请求其他文件时,要求被请求文件与当前文件必须处于同一主机名,同一个协议名,同一个端口号下,否则请求将不能成功,如果要请求非同源文件,必须进行跨域请求设置。
3.如果需要向服务器传递参数的话,可以使用$.get()方法和$.post()方法还有后面的$.ajax方法。
$.get()/$.post():在$.ajax()的基础上,进行封装,默认使用get请求。
  接收4个参数:
      (1)请求的后台Url
      (2)传递给后台的数据,对象类型,相当于ajax中的data属性。
      (3)请求成功的回调函数,相当于ajax中的success
      (4)预期返回的数据类型,相当与ajax中的dataType
$.get()方法/$.post()方法
| 参数名称 | 类型 | 说明 | 
| url | String | 请求HTML页面的URL地址 | 
| data(可选) | Object | 发送至服务器的key/value数据,会作为字符串凭接在url的后面 | 
| callback(可选) | Function | 请求完成时的回调函数(只有当Response的返回状态是success的时候,才调用该函数) | 
| type (可选) | String | 服务器返回内容的格式,包括xml、html、script、json、text、_default | 
$.get(
"java1801.json", {
"name": "zhangsan"
},
function(data) {
console.log(data);
},
"json"
);
4.$.getJSON():通过Get的方式,请求JSON数据。
5.serialize()方法会将表单中所有的内容拼接成key=value&key=value这样的字符串。
                $("#form input[type='button']:eq(0)").on("click",function(){
                    var str = $("form:eq(0)").serialize();
                    console.log(str);
                });
6.serializeArray()方法会将表单中所有的内容拼接成字符数组。
                 $("#form input[type='button']:eq(1)").on("click",function(){
                     var arr = $("form:eq(0)").serializeArray();
                     var obj = {};
                     $.each(arr, function(index,item) {
                         var keys = item.name;
                         var value = item.value;
                         obj[keys] = item.value;
                     });
                     console.log(JSON.stringify(obj));
                 });
使用JQuery插件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title> <style type="text/css">
.error{
color: red;
}
</style> <script src="js/jquery-1.10.2.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
<script src="js/messages_zh.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript">
$(function(){ $("form:eq(0)").validate({
debug:true,//至验证不提交表单
rules:{//规则
username:{
required:true,
maxlength:16,
minlength:6
}
},
messages:{//提示信息
username:{
required:"必须输入",
maxlength:"长度不能大于16",
minlength:"长度不能小于16"
}
},
}); })
</script> </head>
<body> <form id="form"> 用户名:<input type="text" name="username" /><br />
密 码:<input type="password" name="pwd" /><br />
确认密码:<input type="password" name="rpwd" /><br />
邮 箱:<input type="text" name="email" /><br /> <input type="submit" value="提交"/>
</form> </body>
</html>

JQuery(三)-- AJAX的深入理解以及JQuery的使用的更多相关文章
- 【jQuery】$.ajax() 常用参数理解
		
参考:http://hemin.cn/jq/jQuery.ajax.html注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置.个人理解全局设置,在每次调用$.ajax()时都会执行 ...
 - jQuery学习笔记之jQuery的Ajax(3)
		
jQuery学习笔记之jQuery的Ajax(3) 6.jQuery的Ajax插件 源码地址: https://github.com/iyun/jQueryDemo.git ------------- ...
 - Struts2处理(jQuery)Ajax请求
		
1. Ajax Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)时一种创建交互式网页应用的网页开发技术,它并不是一项新的技术,其产生 ...
 - jQuery中ajax应用
		
一:Ajax介绍 1.ajax的定义:客服端js所发起的http请求的代号,无刷新的数据更新. 2.ajax原理: 运用XHTML+CSS来表达信息,运用javascript操作DOM(Documen ...
 - Ajax02 什么是json、json语法、json的使用、利用jQuery实现ajax
		
目录 1什么是json 2json语法 3json的使用 4利用jQuery实现ajax编程 1 什么是json JavaScript Object Notation(JavaScript 对象表示法 ...
 - 第十六章:Python の Web开发基础(三) jQuery与Ajax
		
本課主題 jQuery 介绍 Ajax 介绍 jQuery 介绍 选择器 jQuery 的选择器分不同的种类,主要目的是用来查找目标的 HTML 标签,方便对目标标签进行操作,比如找到 <li& ...
 - 详解Ajax请求(三)——jQuery对Ajax的实现及serialize()函数对于表单域控件参数提交的使用技巧
		
原生的Ajax对于异步请求的实现并不好用,特别是不同的浏览器对于Ajax的实现并不完全相同,这就意味着你使用原生的Ajax做异步请求要兼顾浏览器的兼容性问题,对于java程序员来讲这是比较头疼的事情, ...
 - jQuery中Ajax(三)
		
1. jQuery.ajaxSetup([options]), 设置全局 AJAX 默认选项. 参数见 'jQuery.ajax(url,[settings])' 说明. 2. jQuery.ajax ...
 - jquery的ajax可以传入的三种参数类型
		
在jquery的ajax函数中,可以传入3种类型的数据 1.文本:"uname=alice&mobileIpt=110&birthday=1983-05-12" 2 ...
 
随机推荐
- PageContext ServletContext ServletConfig辨析
			
上面三个东西都是什么关系呀? 先看图 注意几点 1 GenericServlet有两个init方法# 2 GenericServlet既实现了ServletConfig方法,它自己由依赖一个Servl ...
 - MinerHtmlThread.java 爬取页面线程
			
MinerHtmlThread.java 爬取页面线程 package com.iteye.injavawetrust.miner; import org.apache.commons.logging ...
 - AngularJS进阶(三十七)IE浏览器兼容性后续
			
IE浏览器兼容性后续 前言 继续尝试解决IE浏览器兼容性问题,结局方案为更换jquery.angularjs.IE的版本. 1.首先尝试更换jquery版本为1.7.2 jquery-1.9.1.js ...
 - centos vsftpd 553 Could not create file解决方法
			
centos vsftpd 553 Could not create file解决方法 问题由于selinux引起的,问题解决办法: www.2cto.com 输入:getsebool - ...
 - MT6575 3G切换2G
			
因为了节省成本,需要从现在的3G方案切换置2G方案,做的修改,做个笔记. 一: 将MTK给过来的补丁编译出如下文件. 二:在mediatek/custom/common/modem/ 路径下增加一个 ...
 - ARC时代的内存管理
			
什么是ARC Automatic Reference Counting (ARC) is a compiler feature that provides automatic memory manag ...
 - linux - 目录、文件默认属性: umask使用
			
一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读( ...
 - CentOS 7 运行级别的切换
			
CentOS 7 运行级别的切换 由命令行级别切换到窗口级别的命令未变:init 5或startx 由窗口级别切换到命令行级别的命令未变:init 3 新版本的运行级别都定义在 /lib/system ...
 - Linux的常用命令(1) - 指定运行级别
			
命令:init [0123456] 运行级别 0:关机 1:单用户 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 常用运行级别是3和5,要 ...
 - x64系统的判断和x64下文件和注册表访问的重定向——补记
			
原来的地址 x64系统的判断和x64下文件和注册表访问的重定向(1) x64系统的判断和x64下文件和注册表访问的重定向(2) x64系统的判断和x64下文件和注册表访问的重定向(3) 之前在(3)里 ...