AJAX面试精讲

  1. ajax概念:

异步的javascript和xml ,AJAX 是一种用于创建快速动态网页的技术。  ajax用来与后台交互。

  1. 什么是ajax跨域?

同源策略限制 不同源会造成跨域。

  1. 如何解决ajax跨域问题?

  1. 、jsonp只能解决get跨域。

原理:动态创建一个script标签。利用script标签的src属性不受同源策略限制。因为所有?

1、去创建一个script标签;

2、script的src属性设置接口地址;

3、接口参数,必须要带一个自定义函数名 要不然后台无法返回数据;

4、通过定义函数名去接收后台返回数据。

  1. 、CORS跨域资源共享。

原理:服务器设置Access-Control-Allow-OriginHTTP响应头之后,浏览器将会允许跨域请??

限制:浏览器需要支持HTML5,可以支持POST,PUT等方法兼容ie9以上

  1. 、设置document.domain

原理:相同主域名不同子域名下的页面,可以设置document.domain让它们同域

限制:同域document提供的是页面间的互操作,需要载入iframe页面

  1. Ajax请求步骤是怎样的?

第一步:创建异步对象

var xhr = new XMLHttpRequest();

第二步:设置 请求行 open(请求方式,请求url):

// get请求如果有参数就需要在url后面拼接参数,

// post如果有参数,就在请求体中传递 xhr.open("get","validate.php?username="+name)

xhr.open("post","validate.php");

第三步:设置请求(GET方式忽略此步骤)头:setRequestHeader()

// 1.get不需要设置

// 2.post需要设置请求头:Content-Type:application/x-www-form-urlencoded

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

第四步:设置请求体 send()

// 1.get的参数在url拼接了,所以不需要在这个函数中设置

// 2.post的参数在这个函数中设置(如果有参数)

xhr.send(null) xhr.send("username="+name);

第五步:让异步对象接收服务器的响应数据

// 一个成功的响应有两个条件:1.服务器成功响应了 2.异步对象的响应状态为4(数据解析完毕可以使用了)

xhr.onreadystatechange = function(){

if(xhr.status == 200 && xhr.readyState == 4){

  console.log(xhr.responseText);

   }

  1. 常见状态码?

1:400 (错误请求) 服务器不理解请求的语法。

2:403 (禁止) 服务器拒绝请求。

3:404 (未找到) 服务器找不到请求的网页。

4:500 (服务器内部错误) 服务器遇到错误,无法完成请求。

5:501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

6:502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

7:503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

8:504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。:

9:505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

  1. json解析的方式?

对于简单的json字符串或者数组数据,可以用:JsonObject和JsonArray。

使用以上两种方式解析json均需要依赖json-lib.jar开发包使用依赖包。

1、如果只是一条简单的json数据,可以直接用JsonObject即可

2、如果是数组数据的json,用JsonArray比较合适

3、对于复杂的json数据,需要借助jackson框架,先泛型转化,再readValue

发布了400 篇原创文章 · 获赞 940 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/A_BlackMoon/article/details/102828014