前端,什么是跨域,及跨域常见的解决方案(简讲)「建议收藏」

前端,什么是跨域,及跨域常见的解决方案(简讲)「建议收藏」一 认识跨域 1 同源 符合 协议 域名 端口 三者相同 就是同源 2 同源策略 同源策略 其初衷是为了浏览器的安全性 通过以下三种限制 保证浏览器不易受到 XSS CSFR 等攻击 Cookie LocalStorage 和 IndexDB 无法读取 DOM 和 Js 对象无法获得 AJAX 请求不能发送 3 跨域 引入同源对概念 是因为我们常指对跨域 其实就是浏览器同源策略限制的一类请求场景

一、认识跨域

1、同源

符合”协议+域名+端口”三者相同,就是同源

2、同源策略

同源策略,其初衷是为了浏览器的安全性,通过以下三种限制,保证浏览器不易受到XSS、CSFR等攻击。

Cookie、LocalStorage 和 IndexDB 无法读取

DOM 和 Js对象无法获得

AJAX 请求不能发送

3、跨域

引入同源对概念,是因为我们常指对跨域,其实就是浏览器同源策略限制的一类请求场景。

4、常见跨域情景

URL说明是否允许通信
http://www.domain.com/a.jshttp://www.domain.com/b.jshttp://www.domain.com/lab/c.js同一域名,不同文件或路径允许
http://www.domain.com:8000/a.jshttp://www.domain.com/b.js同一域名,不同端口不允许
http://www.domain.com/a.jshttps://www.domain.com/b.js同一域名,不同协议不允许
http://www.domain.com/a.jshttp://192.168.4.12/b.js域名和域名对应相同ip不允许
http://www.domain.com/a.jshttp://x.domain.com/b.jshttp://domain.com/c.js主域相同,子域不同不允许
http://www.domain1.com/a.jshttp://www.domain2.com/b.js不同域名不允许

5、跨域解决方案

通过jsonp跨域

document.domain + iframe跨域

location.hash + iframe

window.name + iframe跨域

postMessage跨域

跨域资源共享(CORS)

nginx代理跨域

nodejs中间件代理跨域

WebSocket协议跨域

注:我的笔记着重学习第 1 和第 6 种方法,其它第不做介绍。

6、*补充

这里不是重点,只要知道我们平时说对跨域是狭义对跨域,仅仅是浏览器出于安全考虑对一种限制,而广义对跨域,包含以下特征:

资源跳转: A链接、重定向、表单提交。

资源嵌入:

/pre>

p>返回内容

/p>

pre class='language-javascript'>

onBack({

"status": true, "user": "admin"})

/pre>

p>在这里,返回内容调用了全局函数 onBack ,并且是带数据的调用。

/p>

h3>3、Jquery 实现

/h3>

pre class='language-javascript'>

$.ajax({
url: 'http://www.demo.com:8080/login',
type: 'get',
dataType: 'jsonp', // 请求方式为jsonp
jsonpCallback: "onBack", // 自定义回调函数名
data: {}
});

/pre>

h3>4、vue 实现

/h3>

pre class='language-javascript'>

this.$http.jsonp('http://www.domain2.com:8080/login', {
params: {},
jsonp: 'onBack'
}).then((res) => { console.log(res); })

/pre>

h2>三、跨域资源共享(CORS)

/h2>

p>好吧,我的笔记里不全面整理了,直接接入 阮一峰老师 的博客


跨域资源共享 CORS 详解——阮一峰

/p>

编程小号
上一篇 2025-01-16 15:57
下一篇 2025-01-16 15:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/148930.html