基于原生的 XMLHttpRequest 对象,也可以使用 ActiveXObject(兼容性较差)。需要手动处理各个步骤,如创建 XMLHttpRequest 对象、设置回调函数等。可以对请求进行更细粒度的控制,如设置请求头、超时时间等。回调函数传统上采用 onreadystatechange 事件处理,需要手动判断请求状态和处理结果。在兼容性和底层控制方面更加灵活,但使用起来相对繁琐。https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=338f0ca1567e4c73b299ff4888ff0e9d