浏览器对 XMLHttpRequest 对象的 HTTP 请求,是有范围限制的,这项规定被称为 同源策略。总共有 3条 限制。
1. 域名相同 在 www.jmjc.tech 的页面下请求 jmjc.tech 服务器的内容,是不允许的。
2. 协议相同 https 和 http 也是两个不同的范围区域。
3. 端口相同 默认是 80 端口。
由于浏览器为了安全规定了 同源策略,绕过同源策略的限制,通常有以下几种办法。
1. flash
2. 在同源域名假设一个代理服务器
3. cors
4. jsonp
CORS 是一种 白名单机制,CORS 的请求成功与否取决于服务器是否同意当前域的请求,通过在服务器设置允许当前域名请求做到 跨域访问。
在服务器的响应头部标示 Access-Control-Allow-Origin:当前域名 or * 。
JSONP 的跨域访问是利用了 script 文件的加载,所有只能支持 GET请求,返回过来的是一个 JavaScript 文件。
<!-- 通过 script 能跨域加载 javascript 脚本的这一特性 -->
<script src="http://xxx.com?xxx"></script>
<!-- 假设 http://xxx.com?xxx 加载的内容 -->
<script>
function f() {
return 'date' // 返回一个我们需要的数据
}
</script>
<!-- 使用数据 -->
<script>
f() // 'date'
</script>
JavaScript 数据类型
JavaScript 数字
JavaScript 字符串
JavaScript 数组
JavaScript 对象
JavaScript Map
JavaScript Set
JavaScript null
JavaScript undefined
JavaScript 类型检测
JavaScript 包装对象
JavaScript 函数
JavaScript 参数
JavaScript 匿名函数
JavaScript 箭头函数
JavaScript 递归
JavaScript 闭包
JavaScript 生成器
JavaScript 异步
JavaScript setTimeout
JavaScript setInterval
JavaScript 回调
JavaScript Promise
JavaScript async await