AJAX面试精讲

超、凢脫俗 2023-06-11 13:30 135阅读 0赞
  1. ajax概念:

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfQmxhY2tNb29u_size_16_color_FFFFFF_t_70

  1. 什么是ajax跨域?

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

20191030215110568.png

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

  2. 、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

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux面试

    问题一: 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 答案: 绝对路径: 如/etc/init.d 当前目录和上层目

    相关 PID

    什么是PID? PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。 PID已经有107年