JSON数据

二、JSON数据

1、什么是json:javascirpt Object Notation,是一种轻量级的前后端数据交换格式(数据格式)

2、特点:

(1)容易阅读和编写

(2)语言无关系:和任何的开发没有关系

(3)便于编译、解析

3、语法要求

(1)是一个键值对,一个键对应一个值

(2)每个数据项之间用逗号分隔

(3)用{}保存对象

(4)用[]保存数组

4、常用方法

JSON.stringify(参数):将参数里面的数据转换为json格式的字符串

5、使用场景

在前后端交互时,凡是需要将结构化的数据转化为文本时,都可以使用JSON。

三、node的http模块:使用node创建http服务器(重点)

1、web服务器:网站服务器,主要提供网上信息的浏览服务

2、web资源:

(1)静态资源:服务器没有修改的,客户端每次请求的结果都是一样的资源。

(2)动态资源:经过服务器处理的资源信息。

3、http协议:(HyperText Transfer Protocol)超文本传输协议。规范了客户端和服务器之间进行交互的数据格式。是基于请求与响应的协议

(1)请求(request):客户端(浏览器)向服务器发送信息(发送请求信息)---  http请求

(2)响应(response)服务器接收到客户端的请求后所做出的的响应  ---  http响应

(3)协议内容:

基本信息:请求地址(url)、请求方式(get、post)、请求-响应是否完成、路由地址(ip地址)

响应头信息:http协议版本号、200是一个状态码(表示请求响应已经完成)、响应文本的格式

请求头信息:User - Agent(客户端浏览器的内核)、Hose(请求服务器的地址和端口号)、Accept发送请求的文本格式

(4)状态码:不同状态的状态码反映了请求-响应过程的完成情况

200:请求-响应的过程已经成功完成。

204:请求-响应的过程已经完成,但是没有响应数据

以3开头的状态码:表示页面重定向了,也就是说服务器端页面已经发生跳转,此时的页面已经不再是我们想要的页面

404:客户端请求的资源不存在

403:服务器拒绝请求

400:请求的语法错误

500:服务器错误,无法响应请求

503:服务器无法使用

(5)响应信息的格式:‘大类型/具体类型’的定义方式

text/plain:普通文本格式

text/html:html文本

text/css:css文件

application/javascript:js文件

login.html文件:

server.js文件

四、ajax:(难点)

1、同源和跨域

(1)、同源(Origin):协议、域名、端口号相同就是同源

例如:http://www.a.com:8080/test/index.html地址的同源

   http://www.a.com/dir/path.html  --- 成功,协议是http、域名是www.a.com、端口号是8080

http://www.child.a.com/dir/page.html  --- 失败,非同源,域名不同

https://www.a.com/dir/page.html   --- 失败,非同源,协议不同

http://www.a.com:8089/test/index.html  ---  失败,端口号不同

(2)、引入同源策略的原因:

是浏览器的一种安全机制,即客户端的脚本(javascript程序)在没有明确授权的情况下是不能访问对方的资源。

不受同源策略限制的操作:

页面中的链接(超链接)、页面的重定向、表单提交

(3)、跨域:只要协议、域名、端口号有一个不同就属于跨域。

产生跨域的原因:

因为javascript的同源策略(js只能访问和操作自己域下的资源,不能访问和操作其他域下的资源)。

跨域的解决方案:

a、cros:服务器设置http响应头中Access-Content-Allow-Origin值,解除跨域限制。限制是若在服务器端不做配置就无法跨域,严重依赖服务器端。

b、jsonp:利用script标签具有跨域的特征,在本地的回调函数中实现跨域。

c、反向代理(Reverse Proxy):在客户端独立的解决跨域问题。

//设置允许来自哪里的跨域访问:'*'表示所有的跨域

    res.setHeader("Access-Control-Allow-Origin", "*");

    //设置允许跨域访问的方式:服务器接收哪些方式的跨域访问

    res.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS")

     //设置请求头中允许携带的参数

    res.setHeader("Access-Control-Allow-Headers", "Content-Type,request-origin");

2、什么是ajax:Asynchronous JavaScript And XML ,异步的javascript的XML支持

(1)xml:是一种前后端交互时使用的文件格式。用户可以自定义标签

(2)异步:客户端向服务器发起请求后不会等待服务器的响应(处理结果),继续执行自己的流程;当服务的响应信息到了后,调用客户端的回调函数,对响应信息进行处理即可。

(3)异步优点:

a、减轻服务器的负担

b、节省带宽(防止带宽被大量占用,等待时间变长)

c、用户体验感好

(4)Ajax技术:不是新技术,只是对html、javascript、xml这些技术的整合。整合后可以实现页面的局部刷新

3、Ajax实现过程

(1)创建ajax的和新对象:XMLHttpRequest,使用该对象向服务器发起请求,是一个一步的请求,实现页面的局部刷新

W3C标准的浏览器创建XMLHttpRequest对象的方法:

let xhr = new XMLHttpRequest( )

非W3C标准的浏览器创建时:

let xhr = new ActiveObject( )

(2)XMLHttpRequest对象的属性:

a、onreadystatechange:本质是一个事件,当请求响应的状态发生改变时触发。

b、readyState:请求响应的状态值。

c、responseText:服务器给客户端响应的字符串

d、status:服务器响应的http状态码(200 表示请求响应已经成功)

(3)XMLHttpRequest对象的方法:

a、open('method'、'url'):建立和服务器之间的连接。

参数一:表示发起请求的方法(get、post)

参数二:表示服务器的地址

b、send(content):发送请求,参数通常为null。

示例:通过XMLHttpRequest对象向服务器发起异步请求

html页面:

服务器端:

练习:通过ajax实现对用户名的验证。若用户名不是abc可用,不是就可以用。验证过程在服务器端完成。

html:

服务器:

五、jQuery中对ajax的封装

1、$.ajax(url,[setting])

html:

服务器:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值