简单理解一下什么是跨域

1. 什么是跨域?

  1. 因为浏览器有同源策略,是判断一个浏览器是否合格的最基本的标准

  2. 什么是同源?

    • 是浏览器通过这个策略,将不同的网站分类(隔离),就确保了信息的安全。你想一想要是没有这个东西,我们是不是可以随便请求淘宝接口,甚至给post一些信息到它们接口上,可能就乱套了
  3. 所以它是很必要的,我们再来明确一个概念,需要达到3个条件,相同协议相同域名相同端口,才能通讯。

项目Value是否允许通讯
http://www.A.com 和https://www.A不同协议不允许
http://www.A.com 和http://www.B.com不同域名不允许
http://www.A.com:8080 和 http://www.A.com不同端口不允许
http://www.A.com/4399/A 和http://www.A.com/4399/A/B三个条件满足才允许

二,解决跨域问题 (第一种解决方法是从前端入手)

  1. 可以通过jsonp
    -首先我们先明白jsonp的原理,通俗的讲就是动态生成一个script然后script不受同源策略的限制,就可以去请求不同域的接口了(不能理解?想象一下你的jQuery是怎么引入的,是不是script后面一个网址?道理是一样的。)
// 使用Jq的ajax 
 $ajax({
 // 请求的路径(请求接口) url 
 url:"http://www/A.com/B",
 // 请求的方法  GET
 type:"GET",
 // 请求方式为jsonp
 datatype:"jsonp",
 // 这里可以使用自定义回调函数名
 jsonpCallback:"bacData",
 // 等待服务器返回的数据
 data:{}
 })

但是jsonp只能GET,而不能POST。
jquery已经封装好这个函数,只要通过这个模式去写就行了,自动生成script去执行。

  1. 跨域资源共享,CORS
  • 这个说白了就是后台代码允许某个域名下的请求,比如我是后台开发的人员,我可以写上允许 http://www.beginner.com 所有的接口调用。
  • (后端做的,不需要前端做任何的解决跨域的操作,直接ajax请求就行了),让后端大佬写上,你就不用考虑这个跨域了
//服务端代码写上,允许http://www.beginner.com下的所有请求
'Access-Control-Allow-Origin' : 'http://www.beginner.com'

  1. 后端代理
    • 是如果这个后台不是你们团队写的,你又很想去调用这个接口,那怎么办呢?

    • 很简单,同源策略是哪里来的,浏览器规定的,那你不要在浏览器内发起请求不就好了!!

    • 你可以写一个简单的后端程序,让你的调用接口请求让它去做。然后这个后端程序是你控制的,所以你想怎么请求都行。easy

var http = require("http");
var httpProxy = require('http-proxy'); 
var proxy = httpProxy.createProxyServer({});

var server = http.createServer(function(req, res) { 
    delete req.headers.host;
 	proxy.web(req, res, {target: 'http://www.beginner.com'}); 
}); 
console.log("proxy listening on port 80") 
server.listen(80);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: c是西方一套音符符号中的第三个音符,它在音乐中扮演着重要的角色。c是一个简单的音符,它是一个固定的音高,没有升降符号。在西方音乐中,c代表的是C大调,是一个自然的音阶,给人一种明亮、欢快的感觉。 c也可以代表其他的意义,比如代表度量血液中的浓度。在医学和化学领域,c表示浓度的单位,一般以克/升为单位,用来测量溶液中溶质的浓度。 此外,c还可以作为一个字母代表其他的概念。在计算机编程领域,c代表C语言,这是一种广泛使用的计算机编程语言,具有高效、灵活和可移植性等特点,被广泛应用于软件开发。 总的来说,c作为一个音符、浓度单位或计算机编程语言的代表,都具有重要的意义和应用领域。无论是在音乐、科学还是技术领域,c都有着不可替代的作用。 ### 回答2: c可能代表很多事情,有以下几个可能的解释: 1. C语言:C是一种计算机编程语言,由丹尼斯·里奇在20世纪70年代初开发。C语言具有简单、高效、灵活的特点,被广泛应用于系统软件开发和嵌入式系统中。很多编程教材都会从C语言开始教授,因为它基本的语法和概念适合初学者理解和掌握。 2. 大提琴(Cello):C是大提琴的简称,大提琴是西洋乐器中的一种,属于弦乐器,由四根双开式弦组成。大提琴通常是由木头制成的,演奏者是抱着琴将琴臂放在肩膀上演奏。它是交响乐队和室内乐团中重要的组成部分,也是独奏演奏和演唱伴奏的常用乐器之一。 3. 化学符号:在化学中,C是碳元素的化学符号。碳是一种常见的化学元素,它在地壳中广泛存在,并且是生物体中的重要组成部分。碳相对原子质量为12,原子序数为6,具有四个价电子,可以与其他元素形成多种化合物。 根据上述解释,根据具体的语境,C可能代表编程语言C、大提琴或碳元素。在理解和回答问题时,需要根据具体情况进行适当解释和引申。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值