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();

 1                                 var jsonObj = {
 2                                     "name" : "zhangsan",
 3                                     "age" : "12",
 4                                     "sex" : "男"
 5                                 };
 6                                 
 7                                 //JSON字符串
 8                                 var jsonObj1 = '{"name" : "zhangsan","age" : "12","sex" : "男"}';
 9                                 
10                                 var jsonObj2 = "{\"name\" : \"zhangsan\",\"age\" : \"12\",\"sex\" : \"男\"}";
11                                 
12                                 //JS中将JSON字符串转化成JSON对象
13                                 console.log(JSON.parse(jsonObj1));
14                                 
15                                 //JS中将JSON对象转化成JSON字符串
16                                 console.log(JSON.stringify(jsonObj));
17                                 
18                                 //JQuery中将JSON字符串转化成JSON对象
19                                 console.log($.parseJSON(jsonObj2));

4.JSON数组:将多个JSON对象组成数组的形式存放,称为JSON数组。

  JSON数组可以和JSON对象相互嵌套,也就是说JSON对象的值可以是JSON数组。

 1                                 var jsonArr = [
 2                                     {
 3                                         "name":"zhangsan",
 4                                         "hobby":[{"0":"0"},{"1":"1"}]
 5                                     },
 6                                     {
 7                                         "name":"zhangsan",
 8                                         "hobby":[{"0":"0"},{"1":"1"}]
 9                                     },
10                                     {
11                                         "name":"zhangsan",
12                                         "hobby":[{"0":"0"},{"1":"1"}]
13                                     }
14                                 ];

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]);

参数名称类型说明
urlString请求HTML页面的URL地址
data(可选)Object发送至服务器的key/value数据,JSON字符串
callback(可选)Function请求完成时的回调函数,无论请求成功还是失败,加载完成后会执行函数
load()方法的传递方式根据参数data来自动指定。如果没有参数传递,则采用GET方式传递;反之则会自动转换为POST方式。
2、$.ajax(): 是JQuery中最底层的Ajax函数。参数接受一个大对象,用参数的键值对表示ajax请求的相关设置:
        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设置请求超时时间
 1                                 $.ajax({
 2                                     type:"get",
 3                                     url:"java1801.json",
 4                                     async:true,
 5                                     dataType:"json",
 6                                     data:{"name":"张三","age":12},
 7                                     success:function(data,textStatus,jqXRM){
 8                                         console.log(data);
 9                                         console.log(textStatus);
10                                         console.log(jqXRM);
11                                         console.log(jqXRM.responseText);
12                                         console.log(jqXRM.responseJSON);
13                                     },
14                                     error:function(XMLHttpRequest, textStatus, thrownError){
15                                         console.log(XMLHttpRequest);
16                                         console.log(textStatus);
17                                         console.log(thrownError);
18                                     },
19                                     complete:function(XMLHttpRequest, textStatus){
20                                         console.log(XMLHttpRequest);
21                                         console.log(textStatus);
22                                     },
23                                     statusCode:{
24                                         200:function(){
25                                             console.log("请求成功");
26                                         },
27                                         404:function(){
28                                             console.log("请求失败");
29                                         }
30                                     },
31                                     timeout:200
32                                 });

[JS中的同源策略]
  在JS中,当请求其他文件时,要求被请求文件与当前文件必须处于同一主机名,同一个协议名,同一个端口号下,否则请求将不能成功,如果要请求非同源文件,必须进行跨域请求设置。

 

3.如果需要向服务器传递参数的话,可以使用$.get()方法和$.post()方法还有后面的$.ajax方法。

  $.get()/$.post():在$.ajax()的基础上,进行封装,默认使用get请求。

  接收4个参数:
      (1)请求的后台Url
      (2)传递给后台的数据,对象类型,相当于ajax中的data属性。
      (3)请求成功的回调函数,相当于ajax中的success
      (4)预期返回的数据类型,相当与ajax中的dataType

 $.get()方法/$.post()方法

参数名称类型说明
urlString请求HTML页面的URL地址
data(可选)Object发送至服务器的key/value数据,会作为字符串凭接在url的后面
callback(可选)Function请求完成时的回调函数(只有当Response的返回状态是success的时候,才调用该函数)
type (可选)String服务器返回内容的格式,包括xml、html、script、json、text、_default
1                 $.get(
2                     "java1801.json", {
3                         "name": "zhangsan"
4                     },
5                     function(data) {
6                         console.log(data);
7                     },
8                     "json"
9                 );

 

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()方法会将表单中所有的内容拼接成字符数组。

 

 1                 $("#form input[type='button']:eq(1)").on("click",function(){
 2                     
 3                     var arr = $("form:eq(0)").serializeArray();
 4                     
 5                     var obj = {};
 6                     $.each(arr, function(index,item) {
 7                         var keys = item.name;
 8                         var value = item.value;
 9                         obj[keys] = item.value;
10                     });
11                     
12                     console.log(JSON.stringify(obj));
13                 });

 

使用JQuery插件

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         
 7         <style type="text/css">
 8             .error{
 9                 color: red;
10             }
11         </style>
12         
13         <script src="js/jquery-1.10.2.js" type="text/javascript" charset="utf-8"></script>
14         <script src="js/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
15         <script src="js/messages_zh.min.js" type="text/javascript" charset="utf-8"></script>
16         
17         <script type="text/javascript">
18             $(function(){
19                 
20                 $("form:eq(0)").validate({
21                     debug:true,//至验证不提交表单
22                     rules:{//规则
23                         username:{
24                             required:true,
25                             maxlength:16,
26                             minlength:6
27                         }
28                     },
29                     messages:{//提示信息
30                         username:{
31                             required:"必须输入",
32                             maxlength:"长度不能大于16",
33                             minlength:"长度不能小于16"
34                         }
35                     },
36                 });
37                 
38             })
39         </script>
40         
41     </head>
42     <body>
43         
44         <form id="form">
45             
46              用户名:<input type="text" name="username" /><br />
47             密  码:<input type="password" name="pwd" /><br />
48             确认密码:<input type="password" name="rpwd" /><br />
49             邮  箱:<input type="text" name="email" /><br />
50             
51             <input type="submit" value="提交"/>
52         </form>
53         
54     </body>
55 </html>

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSF的工作方式和调试方式–可以使用polyglot吗?

JSF不是我们通常认为的那样。 这也是一个调试起来可能有些棘手的框架&#xff0c;尤其是在初次遇到时。 在这篇文章中&#xff0c;让我们继续探讨为什么会出现这种情况&#xff0c;并提供一些JSF调试技术。 我们将讨论以下主题&#xff1a; JSF不是我们经常想到的 JSF调试的难…

React组件实现越级传递属性

如果有这样一个结构&#xff1a;三级嵌套&#xff0c;分别是&#xff1a;一级父组件、二级子组件、三级孙子组件&#xff0c;且前者包含后者&#xff0c;结构如图&#xff1a; 如果把一个属性&#xff0c;比如color&#xff0c;从一级传递给三级&#xff0c;一般做法是使用prop…

尝试Office 2003 VSTO的开发、部署

背景&#xff1a;一年前&#xff0c;某项目需要使用到Excel进行数据录入&#xff0c;考虑到很多用户还是使用XPOffice 2003&#xff0c;所以开发的时候直接使用Excel 2003版本进行VBA开发。也许很多人都会说&#xff0c;Win10都出了&#xff0c;微软的Office都要免费了&#xf…

初级开发人员在编写单元测试时常犯的错误

自从我编写第一个单元测试以来已经有10年了。 从那时起&#xff0c;我不记得我已经编写了成千上万的单元测试。 老实说&#xff0c;我在源代码和测试代码之间没有任何区别。 对我来说是同一回事。 测试代码是源代码的一部分。 在过去的3-4年中&#xff0c;我与多个开发团队合作…

OpenDaylight开发hello-world项目之开发工具安装

OpenDaylight开发hello-world项目之开发环境搭建 OpenDaylight开发hello-world项目之开发工具安装 OpenDaylight开发hello-world项目之代码框架搭建 在ODL开发之前&#xff0c;要安装好开发环境。ODL使用java语言开发&#xff0c;所以要安装好java。ODL的代码框架是有maven这个…

Google Chrome 扩展程序开发

根据公司的规定&#xff0c;每月八小时&#xff0c;弹性工作制。所以大家平时来的不太准时&#xff0c;如果有事&#xff0c;下班也就早些回去了。所以一个月下来工作时间可能不够&#xff0c;但是公司的考勤日历是这样的&#xff1a; 除了请假和法定节假日外&#xff0c;其他样…

[Silverlight入门系列]使用MVVM模式(7):ViewModel的INotifyPropertyChanged接口实现

本文说说ViewModel的这个INotifyPropertyChanged接口可以用来做啥&#xff1f; 举例1&#xff1a;我有个TabControl&#xff0c;里面放了很多View&#xff0c;每个由ViewModel控制&#xff0c;我想是想TabSelectionChanged就打开相应的ViewModel&#xff0c;怎么做&#xff1f;…

[读书笔记]TCP/IP详解V1读书笔记-4 5

IP地址与以太网地址之间的关系 R P发送一份称作A R P请求的以太网数据帧给以太网上的每个主机。这个过程称作广播&#xff0c;在32 bit的I P地址和采用不同网络技术的硬件地址之间提供动态映射 ----------------------------------------- arp以太网帧的类型字段为x 0 8 0 6&am…

未来是Apache Karaf上的微服务架构

这是Jamie Goodyear的客座博客文章&#xff08; 博客 &#xff0c; icbts &#xff09;。 他是Savoir Technologies的开源倡导者&#xff0c;Apache开发人员和计算机系统分析师&#xff1b; 他为全球大型组织设计&#xff0c;批判和支持了体系结构。 他拥有纽芬兰纪念大学的计…

使用内存回流的方法来实现将image的内容转换为 byte[]

在今天的开发中老大不知道怎么突发奇想&#xff0c;要使用Image的Byte数据。当时使用老几种方式效果均不理想&#xff0c;最后发现其实可以使用内存回流的方式来实现。多的不说老&#xff0c;马上贴上代码&#xff1a;/**//// <summary> /// 将byte[]转换为Image…

通过设计国际象棋游戏来了解策略模式

今天&#xff0c;我们将借助一个示例来尝试了解策略模式。 我们将考虑的示例是国际象棋游戏。 这里的目的是解释策略模式&#xff0c;而不是构建全面的国际象棋游戏解决方案。 策略模式&#xff1a;策略模式被称为行为模式-用于管理对象之间的算法&#xff0c;关系和职责。 策…

群发邮件

最近&#xff0c;通过两周的学习&#xff0c;对.net 的基础知识有了进一步的了解。觉得自己可以写个小程序了。于是花了两天时间写了一个 群发邮件的一个WinForm小程序。自己在这里小秀一下&#xff0c;表扬及鼓励一下自己。哈哈&#xff01; 此小程序在发送邮件的基础上还添加…

Npm install failed with “cannot run in wd”

Linux环境下&#xff0c;root账户&#xff0c;安装某些npm包的时候报下面的错误&#xff0c;例如安装grunt-contrib-imagemin时&#xff1a; Error: EACCES, mkdir /usr/local/lib/node_modules/coffee-scriptnpm ERR! { [Error: EACCES, mkdir /usr/local/lib/node_modules/c…

我的Google Adsense帐户被关

一、 上周四&#xff0c;我收到Google的邮件&#xff0c;宣布关闭我的Adsense帐户。 "您好&#xff01; 查看了相关记录后&#xff0c;我们确认您的 AdSense 帐户存在引起无效活动的风险。保护 AdWords 广告客户&#xff0c;使其免受无效活动的侵害是我们的责任&#xff0…

csharp: ODP.NET,System.Data.OracleClient(.net 4.0) and System.Data.OleDb读取Oracle g 11.2.0的区别...

ODP.NET: 引用&#xff1a; using Oracle.DataAccess; //Oracle g 11.2.0 using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; //下载 http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html //引用&#xff1a;D:\app\geovindu…

Java 9幕后花絮:新功能从何而来?

找出Java幕后发生的事情&#xff0c;以及新功能如何实现 在上一篇文章中&#xff0c;我们介绍了即将发布的Java 9版本的新功能和尚待解决的功能&#xff0c;并简要提到了将新功能添加到下一个版本之前要经历的过程。 由于此过程几乎影响了所有Java开发人员&#xff0c;但大多数…

sudo apt-get install libstdc++6

sudo apt-get install libstdc6 yum install libncurses.so.5 sudo apt-get install libncurses.so.5 sudo apt-get install lib32ncurses5 apt-get update把源更新一下 使用gdb时的指令 (gbd) info line *0x08xxxx sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.…

AngularJS快速入门指南03:表达式

AngularJS通过表达式将数据绑定到HTML。 AngularJS表达式 AngularJS表达式写在双大括号中&#xff1a;{{ 表达式语句 }}。 AngularJS表达式绑定数据到HTML的方式与ng-bind指令的方式相同。 AngularJS会准确地将表达式“输出”为计算的结果。 AngularJS表达式与JavaScript表达式…

零基础快速上手HarmonyOS ArkTS开发2---ArkTS开发实践

ArkTS开发实践&#xff1a; 接着上一次零基础快速上手HarmonyOS ArkTS开发1---运行Hello World、ArkTS开发语言介绍继续&#xff0c; 在上一次对于ArkTS的基础知识进行了学习&#xff0c;依照官方的课程计划&#xff0c;还有两个具体的小案例需要来实践实践&#xff1a; 实践出…

八、VueJs 填坑日记之参数传递及内容页面的开发

我们在上一篇博文中&#xff0c;渲染出来了一个列表&#xff0c;并在列表中使用了router-link标签&#xff0c;标签内的&#xff1a;to就是链接地址&#xff0c;昨天咱们是<router-link :to"/content/ i.id">这样写的&#xff0c;今天我们来完成内容页面的渲染…