面试-JS Web API- ajax

  • 手写一个简易的Ajax
  • 跨域的常用实现方式

    GET请求
// 创建一个 XMLHttpRequest 对象
const xhr = new XMLHttpRequest();

// 初始化一个 GET 请求
// 第三个参数 true 表示异步,一般都为 true
xhr.open('GET', '/data/test.json', true);  
// 设置事件处理函数,当 readyState 发生变化时会触发
xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
        console.log(xhr.responseText);  // 成功时打印返回的数据
    }
};

// 发送请求
xhr.send();

用Promise实现XMLHttpRequest


POST请求

xhr.readyState

readyState 是 XMLHttpRequest 对象的属性,它代表了请求的当前状态。readyState 的取值范围是 0 到 4,每个状态代表不同的阶段:

0 - UNSENT:还未调用 open() 方法。
1 - OPENED:已经调用 open() 方法,但还未调用 send() 方法。
2 - HEADERS_RECEIVED:调用了 send() 方法,服务器已经返回响应头。
3 - LOADING:正在下载响应体。
4 - DONE:响应体下载完成,可以处理响应。

我们只关注 4

xhr.status

301 永久重定向 302 临时重定向 304 资源未改变
404 请求地址有错误 403 客户端无权限

跨域

  • 同源策略
    Ajax请求时,浏览器要求当前网页和server必须同源(安全)。
    同源就是:协议、域名、端口三者一致。


posted @   一个甜橙子  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示