如何解决跨域问题

2020-04-13  本文已影响0人  云卷云舒听雨声
什么是跨域?

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。

什么是同源策略?
https://qq.com
https://www.qq.com

这两者就不是同源的,完全一致的才算同源。

怎么跨域?
解法一 用CORS

如果要共享数据,需要提前声明,如何声明呢?
具体语法

Access-Control-Allow-Origin:(允许访问的网址)

详情参考:(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin)

解法二 JSONP

(主要是用来兼容IE的)
客户端在 HTML 中动态生成 script 标签,在 “src” 中引入请求的 URL + 回调函数,这样请求服务器返回的数据会交由回调函数处理,这样就实现了跨域读请求;服务端在接收到客户端请求后,首先取得客户端要回调的函数名,再生成 JavaScript 代码段返回给浏览器,浏览器在获取到返回结果后直接调用回调函数完成任务。

扩展

为什么可以跨域使用CSS、JS和图片等?
同源策略限制的是数据访问,我们引用CSS、JS和图片的时候,其实并不知道其内容,我们只是在引用。(如果可以跨域使用的话那你知道CSS的第一个字符是什么吗?)

上一篇 下一篇

猜你喜欢

热点阅读