一.ajax是什么?
ajax全称是asynchronous JavaScript and xml,主要用来实现客户端的异步通信效果,实现页面的局部刷新
ajax就是进行http请求
二.如何创建一个ajax?
1)定义请求对象
var xhr = new XMLHttpRequest()
2)准备发送网络请求
第一个参数dataType: post get
第二个参数是后台请求地址
第三个参数是异步或者同步
xhr.open("", "", true)
3)发送网络请求
xhr.send()
4)执行回调函数:这个回调函数不只执行一次
xhr.onreadystatechange = function() {}
三.如何解决跨域问题
ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。
四.解释jsonp的原理,以及为什么不是真正的ajax
jsonp不是一种数据格式,而json是一种数据格式,jsonp是用来解决跨域获取数据的一种解决方案,具体是通过动态创建script变迁,然后通过标签的src属性获取js文件的js脚本,该脚本的内容是一个函数调用,参数就是服务器返回的数据,为了处理这些返回的数据,需要事先在页面定义好回调函数,本质上使用的并不是ajax技术。
五:get和post的区别?何时使用post?
get一般用来进行查询操作,URL地址有长度限制,请求的参数都暴露在URL地址当中,如果传递中文参数,需要自己进行编码操作,安全性较低。
post:请求方式主要用来提交数据,没有数据长度的限制,提交的数据内容存在于http请求体中,数据不会暴露在URL中
在以下情况下,使用post请求:
1)无法使用缓存文件(更新服务器上的文件或数据库)
2)向服务器发送大量数据(post没有数据量限制)
3)发送包含未知字符的用户输入时,post比get更稳定也更可靠
六:ajax的缺点
1)ajax不支持浏览器back按钮
2)安全问题ajax暴露了与服务器交互的细节
3)对搜索引擎的支持比较弱
4)破坏了程序的异常机制
七:同步和异步的区别
同步:就是按照顺序执行
异步:可以任意执行