ajax常见的面试问题


当前第2页 返回上一页

http://协议不同
www子域名不同
baidu.com主域名不同
8080端口号不同
www.baidu.comip地址和网址不同

6:跨域解决方案有哪些?

1:jsonp 只能解决get跨域(问的最多)

  • 原理:动态创建一个script标签。利用script标签的src属性不受同源策略限制。因为所有的src属性和href属性都不受同源策略限制。可以请求第三方服务器数据内容。
  • 步骤:
  1. 去创建一个script标签
  2. script的src属性设置接口地址
  3. 接口参数,必须要带一个自定义函数名 要不然后台无法返回数据。
  4. 通过定义函数名去接收后台返回数据

1

2

3

4

5

6

7

8

9

10

//去创建一个script标签

var  script = document.createElement("script");

//script的src属性设置接口地址 并带一个callback回调函数名称

script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback";

//插入到页面

document.head.appendChild(script);

//通过定义函数名去接收后台返回数据function jsonpCallback(data){

    //注意  jsonp返回的数据是json对象可以直接使用

    //ajax  取得数据是json字符串需要转换成json对象才可以使用。

}

2:CORS:跨域资源共享

  • 原理:服务器设置Access-Control-Allow-OriginHTTP响应头之后,浏览器将会允许跨域请求
  • 限制:浏览器需要支持HTML5,可以支持POST,PUT等方法兼容ie9以上

1

2

3

需要后台设置

Access-Control-Allow-Origin: *              //允许所有域名访问,或者

Access-Control-Allow-Origin: http://a.com   //只允许所有域名访问

3:设置 document.domain

  • 原理:相同主域名不同子域名下的页面,可以设置document.domain让它们同域
  • 限制:同域document提供的是页面间的互操作,需要载入iframe页面

1

2

3

4

5

6

7

8

9

10

// URL http://a.com/foo

var ifr = document.createElement('iframe');

ifr.src = 'http://b.a.com/bar';

ifr.onload = function(){

    var ifrdoc = ifr.contentDocument || ifr.contentWindow.document;

    ifrdoc.getElementsById("foo").innerHTML);

};

 

ifr.style.display = 'none';

document.body.appendChild(ifr);

4:用Apache做转发(逆向代理),让跨域变成同域

7:http常见状态码有哪些?

一: 2开头状态码

2xx (成功)表示成功处理了请求的状态代码

1

200 (成功) 服务器已成功处理了请求。 通常。

二: 3开头状态码

3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

1

304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

三: 4开头状态码

4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理

1

2

3

4

5

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

  

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

 

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

四: 5开头状态码

5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错

1

2

3

4

5

6

7

8

9

10

11

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

 

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

 

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

 

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

 

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

 

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

相关文章推荐:ajax视频教程

以上就是ajax常见的面试问题的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

history解决ajax出现的问题

ajax的工作原理是什么(附图解)

ajax实现excel报表导出的详解

javascript和ajax的区别是什么

ajax跨域的基本流程

认识 ajax

jquery中ajax提交数据乱码怎么办

jquery ajax区别是什么

ajax常见的面试问题

如何解决jquery ajax乱码问题

更多相关阅读请进入《ajax》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...