ajax面试题汇总

一.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)破坏了程序的异常机制

七:同步和异步的区别

同步:就是按照顺序执行

异步:可以任意执行

你可能感兴趣的:(ajax面试题汇总)