跨域

本文深入讲解了跨域的概念,包括同源与非同源的区别,以及在不同场景下为何会出现跨域问题。同时,提供了多种跨域解决方案,如JSONP、CORS、window.name等,帮助开发者有效应对跨域挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【跨域】

 在当前服务器当中想要获取其他服务器中的内容叫做跨域

 学习跨域我们需要了解什么叫同源非同源

 

 【同源】

 当前服务器的地址:http://localhost:63342/201808js/week7/day4/6.跨域.html

请求服务器的地址:http://localhost:63342/201808js/week7/day4/data1.json

ajax默认不跨域:

如果是同源的话,保证

a.协议相同

b. 域名相同

c. 端口相同

 就不存在跨域,只要有一个不同,就存在跨域现象

【非同源】

当前服务器的地址:http://localhost:63342/201808js/week7/day4/6.跨域.html

 当前服务器的地址:http://localhost:8080/201808js/week7/day4/6.跨域.html

 当前服务器的地址:http://qq.com/

 请求服务器的地址:http://sport.qq.com/

 当前服务器的地址:http://qq.com/

 请求服务器的地址:https://qq.com/

 当前服务器的地址:https://jd.com/create

请求服务器的地址:https://jd.com/login

 

一级域名向二级域名访问的话,也属于跨域

 协议不同也会造成跨域现象

 

什么情况下会用到跨域

 1. 我当前的网站想要放其他网站的一些数据的时候,比如我当前的博客放其他的一些信息【微博】,需要跨域请求微博的接口,进行页面展示

 2. 我当前的服务器的一些资源文件,比如图片,音频视频,不会放到本服务器增加负荷,我可能放到其他的服务器进行实时调用,当用户访问我的网站的时候,去请求的这些资源也会造成跨域,常用的一些标签有 script img audio video iframe link

 3. 当我主服务器访问人数超过限额的时候,我们采用302临时重定向,将访问的用户引导到另外一台服务器上,这样情况下也会造成跨域

 

【 跨域的解决方案】

1. jsonp

 2. cros 跨域资源共享

 3. crossDomain

 4. window.name

 5. iframe

6. webpack proxy

 7. 服务端nginx反向代理

 8. document.domain

 

 

 【jsonp 解决跨域的一种方案】

jsonp原理:在加载页面结构的时候,有一些标签没有同源非同源之分,比如img script link video audio iframe 这些标签都可以插入非同源的地址。我们可以利用script标签上是src可以访问非同源的特性来实现跨域,这个就属于jsonp跨域

 

具体的操作步骤:我们可以在请求的数据地址当中,加一个回调函数,在当前的页面让回调函数执行,那么回调函数当中的参数,就是对方服务器返回给我的数据

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值