专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

前端开发:常见的跨域问题以及解释

ins518 2024-09-16 21:27:38 技术文章 48 ℃ 0 评论

如何实现跨域?

浏览器中有同源策略,即一个域下的页面中,无法通过 Ajax 获取到其他域的接口。

例如有一个接口`http://m.juejin.com/course/ajaxcourserecom?cid=459`,你自己的一个页面`http://www.yourname.com/page1.html`中的 Ajax 无法获取这个接口。这正是命中了“同源策略”。

如果浏览器哪些地方忽略了同源策略,那就是浏览器的安全漏洞,需要紧急修复。

url哪些地方不同算作跨域?

* 协议* 域名* 端口但是 HTML 中几个标签能逃避过同源策略——`<script src="xxx">`、`<img src="xxxx"/>`、`<link href="xxxx">`,这三个标签的`src/href`可以加载其他域的资源,不受同源策略限制。

因此,这使得这三个标签可以做一些特殊的事情。

* `<img>`可以做打点统计,因为统计方并不一定是同域的,在讲解 JS 基础知识异步的时候有过代码示例。除了能跨域之外,`<img>`几乎没有浏览器兼容问题,它是一个非常古老的标签。

* `<script>`和`<link>`可以使用 CDN,CDN 基本都是其他域的链接。

* 另外`<script>`还可以实现 JSONP,能获取其他域接口的信息,接下来马上讲解。

但是请注意,所有的跨域请求方式,最终都需要信息提供方来做出相应的支持和改动,也就是要经过信息提供方的同意才行,否则接收方是无法得到它们的信息的,浏览器是不允许的。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表