Ajax面试题-ajax 是什么?同步和异步的区别?如何解决跨域问题?

本文详细介绍了Ajax的工作原理,对比了同步与异步请求的区别,并深入探讨了解决跨域问题的多种方法,包括JSONP、document.domain+iframe及CORS等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ajax 是什么?同步和异步的区别?如何解决跨域问题?

一、ajax 是一种技术方案,依赖浏览器提供的 XMLHttpRequest 对象发出 HTTP 请求和接收 HTTP 响应;实现了在页面不刷新的情况下和服务器进行数据交互。

二、同步是阻塞模式,异步是非阻塞模式

同步:提交请求 >> 等待服务器处理 >> 处理完毕返回,这个期间浏览器不能干任何事。

异步:请求通过事件触发 >> 服务器处理(这时浏览器仍然可以运作其它事情) >> 处理完毕

三、跨域问题的产生是由于同源策略的限制(协议、域名、端口 三者必须相同,有一个不同就会产生跨域问题)

  • 通过 jsonp 解决跨域问题

    原理:使用 script 标签的 src 属性发送 HTTP 请求(只支持get)

    优点:兼容性好,在很古老的浏览器中也可以用,简单易用,支持浏览器与服务器双向通信。

    缺点:只支持GET请求,且只支持跨域HTTP请求这种情况(不支持HTTPS

  • document.domain + iframe跨域

    此方案仅限主域相同,子域不同的跨域应用场景

  • CORS

    CORS 需要浏览器和后端同时支持;浏览器会自动进行 CORS 通信,实现 CORS 通信的关键是后端。只要后端实现了 CORS,就实现了跨域。服务端设置 Access-Control-Allow-Origin 就可以开启 CORS。 该属性表示哪些域名可以访问资源,如果设置通配符*则表示所有网站都可以访问资源。

  • nginx 反向代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值