跨域 Myth丶恋晨 2022-01-20 04:35 327阅读 0赞 ### 1、同源: ### 同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口号完全相同 1.1目的:保护用户信息安全 1.2限制:cookie、localStorage和IndexDB无法读取 无法操作跨域的iframe里的dom元素 ajax请求不能发送 ### 2、解决 ### #### 一、 jsonp #### 实现: script标签拥有跨域能力, 将服务端数据以函数参数的形式传递,接口返回的数据以该函数包裹的形式返回给前端 #### 二、 利用document.domain + iframe跨域 #### 此方案仅限主域相同,子域不同的跨域应用场景。 实现原理:两个页面都通过js强制设置document.domain为基础主域,就实现了同域。 1.)父窗口:([www.domain.com/a.html][www.domain.com_a.html]) <iframe id="iframe" src="http://child.domain.com/b.html"></iframe> <script> document.domain = 'domain.com'; var user = 'admin'; </script> 复制代码 2.)子窗口:([child.domain.com/b.html][child.domain.com_b.html]) <script> document.domain = 'domain.com'; // 获取父窗口中变量 alert('get js data from parent ---> ' + window.parent.user); </script> 复制代码 三、 跨域资源共享(CORS) 普通跨域请求:只服务端设置Access-Control-Allow-Origin即可, 若要带cookie请求:前后端都需要设置。 需注意的是:由于同源策略的限制,所读取的cookie为跨域请求接口所在域的cookie,而非当前页。 1、 前端设置: 1.)原生ajax // 前端设置是否带cookie xhr.withCredentials = true; 示例代码: var xhr = new XMLHttpRequest(); // IE8/9需用window.XDomainRequest兼容 // 前端设置是否带cookie xhr.withCredentials = true; xhr.open('post', 'http://www.domain2.com:8080/login', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { alert(xhr.responseText); } }; 复制代码 2.)jQuery ajax $.ajax({ ... xhrFields: { withCredentials: true // 前端设置是否带cookie }, crossDomain: true, // 会让请求头中包含跨域的额外信息,但不会含cookie ... }); 复制代码 [www.domain.com_a.html]: https://link.juejin.im?target=http%3A%2F%2Fwww.domain.com%2Fa.html [child.domain.com_b.html]: https://link.juejin.im?target=http%3A%2F%2Fchild.domain.com%2Fb.html
相关 跨域、跨域问题 跨域(CORS)是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the 朴灿烈づ我的快乐病毒、/ 2023年09月27日 00:59/ 0 赞/ 195 阅读
相关 跨域与跨域访问 转自:http://blog.csdn.net/notechsolution/article/details/50394391 什么是跨域 跨域是指从一个域名的网页 淡淡的烟草味﹌/ 2022年06月14日 09:26/ 0 赞/ 395 阅读
相关 跨域 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 所谓同源是指,域名,协议,端口均相同 ![20171 冷不防/ 2022年06月03日 02:50/ 0 赞/ 253 阅读
相关 跨域 jsonp: $(function()\{ $.ajax(\{ async: false, type: "GET", dataType 绝地灬酷狼/ 2022年05月29日 01:29/ 0 赞/ 263 阅读
相关 跨域 一、什么是域 英文 domain,是计算机专用词汇,是指Windows网络中独立运行的单位---百度百科 域是一个有安全边界的计算机集合,在同一个 ゝ一纸荒年。/ 2022年05月19日 11:41/ 0 赞/ 386 阅读
相关 跨域 CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案 JSONP只支持GET请求,JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。 墨蓝/ 2022年02月28日 07:24/ 0 赞/ 651 阅读
相关 跨域 1、同源: 同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口号完全相同 1.1目的:保护用户信息安全 1.2限制:cookie、localSto Myth丶恋晨/ 2022年01月20日 04:35/ 0 赞/ 328 阅读
相关 跨域 2018-07-11 发布 [不要再问我跨域的问题了][Link 1] [javascript][] [前端][Link 2] 野性酷女/ 2021年12月18日 14:59/ 0 赞/ 342 阅读
相关 跨域 引言: 简单说跨域就是A网站调用B网站的程序,获取对应的数据;但是受制于同源策略,这样是不可行的,但是有时候我们有时候又需要这样的情境进行使用 复制代码 同 超、凢脫俗/ 2021年07月25日 23:50/ 0 赞/ 525 阅读
还没有评论,来说两句吧...