首页 > 代码库 > 前端面试题(1)ajax
前端面试题(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);
前端面试题(1)ajax