前端面试题(1)ajax

(1)什么是http :http是计算机通过网络进行通信的规则,http是一种无状态的协议。

(2)get方法与post方法的比较:get:一般用于信息获取使用url传递参数对所发送信息的数量也有限制,一般在2000个字符(默认的,安全的,一般用于查询);post:一般用于修改服务器上的资源,对所发送的信息的数量无限制(用于新建,修改等操作)

(3)一个http响应一般由三部分组成:

1 一个数字和文字组成的状态码,用来显示请求是成功还是失败。

2 响应头,响应头也和请求头一样包含许多有用的信息,列如服务器类型,日期时间,内容类型和长度等。

3 响应体,也就是响应正文。

(4)http状态码由3位数字构成,其中首位数字定义了状态的类型:

1xx:信息类,表示收到web浏览器请求,正在进一步的处理中,

2xx:成功,表示用户请求被正确接受,理解和处理,列如:2000k

3xx:重定向,表示请求没有成功,客户必须采取进一步的动作,

4xx:各户端错误,表示各户端提交的请求有错误,列如:404 NOT Found,意味着请求中所引用的文档不存在。

5xx:服务器错误,表示服务器不能完成对请求的处理,如:500

(5)readystate 属性

0:请求未初始化,open还没有调用

1:服务器连接已建立,open已经调用了

2:请求已接受,也就是接受到头信息了

3:请求处理中,也就是接受到响应主体了

4:请求已完成,且响应已就绪,也就是响应完成了。

(6)JSON

json:javascript对象表示法(Javascript object Notation)

json是储存和交互文本信息的语法,类似XML。它采用键值对的方式来组织,易于人们阅读和编写,同时也易于机器解析和生成

json是独立的语言,也就是说不管什么语言,都可以解析json,只需要按照json的规则来就行了。

json与XML比较

1 json的长度和xml格式比较起来很短小

2 json 读写的速度更快

3 json 可以使用javascript内建的方法直接进行解析,转换成javascript对象,非常方便

json语法规则

json数据的书写格式是:名称/值对,名称/值对组合中的名称写在前面(在花括号中),值对写在后面(同样在双引号中)中间用冒号隔开:比如“name”:“郭靖”

json的值可以是下面这些类型

数字(整数或浮点数),比如123,1.23

字符串(在双引号中)

逻辑值(true或false)

数组(在括号中)

对象(在花括号中)

null

用jquery.ajax([settings])数据形式

type:类型,“post”或”get“,默认为”get“

url:发送请求的地址

data:是一个对象,连同请求送到服务器的数据

data:预期服务器返回的数据类型。如果不指定,jquery将自动根据http包MIME信息来智能的判断,一般我们采用json格式,可以设置为”json“

success:是一个方法,请求成功后的回调函数。传入返回后的数据,以及包含成功代码的字符串

error:是一个方法,请求失败时调用此函数,传入xmlhttprequest对象

跨越

1 解决跨越的第一个方法是代理(后台解决跨域的办法)

2 处理跨域的的第二个方法是jsonp(get请求)json可用于解决主流浏览器的跨域数据访问的问题

例子:在www.aaa.com页面中

<script>

function jsonp(json){

alert(json["name"]);

}

</script>

<script scr ="http://www.bbb.com/jsonp.js"></script>

在 www.bbb.com页面中:

jsonp({'name':'洪七','age':'24'});

3 处理跨域方法三-XHR2

Html5提供的XMLHTTPRequest level2 已经实现了跨域访问以及其它的一些新功能

IE10一下的版本都不支持

在服务器端做一些小小的改造即可:

header('Access-control,Allow-origin:*');

header('Access-control-Allow-Method.Post.Get);

 

原文地址:https://www.cnblogs.com/jiuyuetian/p/6386820.html