手写实现ajax的实现过程及ajax跨域

1、手写ajax的实现过程,不依赖任何第三方库

主要考察XMLHttpRequest 对象,它用于在后台与服务器交换数据
版本ie使用ActiveXObject对象,该方法没有做兼容(根据目前行情,不需要了)

var xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
xhr.onreadtstatechange = function () {
    if (xhr.readystate == 4) {
        //响应内容解析完成,可以在客户端调用了
        if (xhr.status == 200) {
            //客户端的请求成功了
            alert(xhr.responseText);
        }
    }
}
xhr.send(null);

关于状态码的说明:
手写实现ajax的实现过程及ajax跨域_第1张图片
手写实现ajax的实现过程及ajax跨域_第2张图片

2、什么是ajax跨域及解决方法?

  • 什么是ajax跨域?

    浏览器有同源策略,不允许ajax访问其他域名下的接口数据

    所有的跨域请求都必须经过信息提供方允许,如果未经允许就能获取,那是浏览器同源策略出现的漏洞。

    跨域条件:请求url中协议、域名、端口任何一个不同,都属于跨域

  • 有三个标签允许跨域加载,浏览器不会限制

    但是,图片提供方可以通过判断请求url是否属于公司内部域名,来确定是否返回正确图片(比如百度图片设置,仅百度可见),以此来做防盗链处理
    可以用来打点统计,统计网站可能是其他域


    链接css


    链接js

你可能感兴趣的:(前端面试题,js,ajax跨域,jsonp,ajax)