yisainan / web-interview

我是齐丶先丶森,收集整理全网面试题及面试技巧,旨在帮助前端工程师们找到一份好工作!更多详见公众号「前端面试秘籍」
MIT License
2.63k stars 505 forks source link

[网络] 7. 何为跨域? 跨域请求数据有几种方式?图片/脚本 等资源有什么跨域问题。如何解决?跨域请求时如何携带 cookie #944

Open qiilee opened 4 years ago

qiilee commented 4 years ago

答案:

1. 何为跨域?

2.跨域请求数据有几种方式?

(1)JSONP 动态创建 script 标签

但缺点是只支持 get 请求,并且很难判断请求是否失败(一般通过判断请求是否超时)。

(2)Proxy 代理

这种方式首先将请求发送给后台服务器,通过服务器来发送请求,然后将请求的结果传递给前端。

(3)CORS 跨域

是现代浏览器提供的一种跨域请求资源的方法,需要客户端和服务器端的同时支持。整个 CORS 通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS 通信与同源的 AJAX 通信没有差别,代码完全一样。浏览器一旦发现 AJAX 请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现 CORS 通信的关键是服务器。只要服务器实现了 CORS 接口,就可以跨源通信。

3.图片/脚本 等资源有什么跨域问题。如何解决?

4.跨域请求时如何携带 cookie