美文网首页
同源策略与跨域

同源策略与跨域

作者: 喑宝儿 | 来源:发表于2021-05-29 21:47 被阅读0次
1、同源:两个页面协议、域名、端口(默认80)都相同,两个页面具有相同的源
2、同源策略:浏览器提供的安全功能(A的javascript,不允许和非同源网站C之间进行资源交互)

(1)无法读取非同源网页的Cookie、LocalStorage等

(2)无法接触非同源网页的DOM

(3)不能向非同源地址发送Ajax请求

3、跨域:两个页面协议、域名、端口有任何一个不同都会出现跨域(由于浏览器的同源策略导致的)

(1)浏览器对跨域请求进行拦截

跨域请求可以正常发起——浏览器能正常接收到跨域响应的数据——数据被浏览器同源策略拦截,因此Ajax获取不到数据

(2)如何实现跨域数据请求:

  • JSONP(出现得早,兼容性好,只支持get请求)

  • CORS(支持get,也支持post)

4、JSONP(script标签src属性不受同源策略的影响,可以请求到跨域的接口,以函数调用的形式接收跨域接口响应回来的数据)(前后端进行配合)

(1)借助 script标签的src属性,将请求服务器当作请求JS进行

(2)请求JS时将回调函数作为查询字符串发送给服务器

(3)服务器返回的数据作为回调函数的参数返回给浏览器,回调函数被执行,这样就可以进行跨域请求了

缺点: JSONP只能是get请求,请求资源都是get请求

5、jquery中的JSONP请求
$.ajax({
 url: 请求的url地址,
 dataType: 'jsonp',
 // 默认情况下,jquery发送jsonp请求时,会生成一个callback=jQueryXXX的参数(随机生成的回调函数的名称)
 // 指定发送到服务器端参数的名称,默认为callback
 jsonp: 'cb',
 // 自定义回调函数的名称
 jsonpCallback: 'fn',
 success: function(res) {}
})
  • 动态创建和移除script标签的方式,来发起JSONP数据请求

  • 发起JSONP请求时,动态在header中append一个script标签

  • 完成JSONP请求时,动态从header中移除script标签

案例:淘宝搜索(地址:https://suggest.taobao.com/sug?q=keywords

6、防抖

(1)防抖策略:当事件触发后,延迟n秒后再执行回调,如果在这n秒内事件又被触发,则重新计时。

(2)应用场景:文本框确认输入完再去发送请求(可借助定时器实现)(缓存搜索建议列表)

7、节流

(1)节流策略:减少一段时间内事件的触发频率

(2)应用场景:

鼠标连续不断地出发某事件,只在单位时间内触发一次;

懒加载

(3)节流阀:节流阀为空,可以执行下一次操作;不为空,不能执行下次操作(当前操作执行完,必须将节流阀置空,表示可以继续执行,执行之前都要判断一下节流阀是否为空)

相关文章

  • 前端开发的跨域问题

    跨域背景 跨域是由于浏览器的同源策略引起的;那么什么是同源策略呢?同源策略是指页面请求的接口地址必须与 url 地...

  • H5跨域访问

    跨域访问是源于浏览器的同源策略而引申出来的概念 1、先了解什么是同源策略和跨域访问 同源策略、跨域解决方案 - R...

  • H5 知识点 - 收藏集 - 掘金

    跨域解决方案总结 - 前端 - 掘金为什么需要跨域? 就得先知道同源策略. 同源策略 同源策略是为了保证数据的安全...

  • 通过script标签实现跨域

    跨域 什么是跨域? 跨域问题是由于javascript语言安全限制中的同源策略造成的。同源策略是由Netscape...

  • 前端基础(问答23)

    keywords: 同源策略、跨域、jsonp。 什么是同源策略(same origin policy) 同源:协...

  • 有关跨域的相关问题和方法

    跨域是什么 同源策略 在讲解什么是跨域之前先要清楚什么是同源策略,“同源政策”(same-origin polic...

  • 网页请求(同源策略)

    跨域与同源策略 跨域:是指的通过JS在不同域之间进行数据传输或通信。同源策略:它是由Netscape提出的一个著名...

  • 同源策略,跨域请求处理

    跨域访问 - 跨域请求 同源策略 适用于浏览器的一种资源访问策略;同源策略(Same origin policy)...

  • 无星的Egg之旅(一)——跨域

    先说点老生常谈的问题 啥是跨域 1.同源策略 要了解跨域,先要说说同源策略。同源策略是由 Netscape 公司提...

  • 同源策略和跨域

    什么是跨域问题? 为什么会出现跨域问题? 因为浏览器的同源策略(同源指的是:协议+域名+端口相同)。 同源策略是浏...

网友评论

      本文标题:同源策略与跨域

      本文链接:https://www.haomeiwen.com/subject/unuusltx.html