跨域问题的原理分析
跨域 Origin Access-Control-Allow-Origin 浏览器安全策略 解决方案
一、什么是跨域
当页面来源url(的协议,域名,端口)跟页面发出请求获取后端数据的url(的协议,域名,端口),只有要一个不同时,即为跨域。举个例子: 我当前先请求blog.csdn.net/nav/lang到csdn服务器获取到一个csdn的页面,那么csdn页面来源的urlblog.csdn.net/nav/lang,然后我再到该页面去访问后端接口,url为localhost:8074/o/popularize/162,就会出现跨域问题了。
二、原因分析
点开请求分析下几个参数:
Host: 是请求的服务地址
Origin: 是当前页面来源的地址
对于非跨域的请求,是没有Origin这个参数,所以这个参数在跨域问题中相当重要
下面我对后端的解决进行跨域处理,具体怎么处理这里就不赘述了,一搜一大堆,但是基本搜不到一篇原因剖析的,下面我还是在blog.csdn.net/nav/lang所在的页面去访问我本地的一个接口,这个接口已经处理了跨域问题。
次时已经不会出现跨域问题
分析下具体参数,次时我们发现响应请求头多了这个Access-Control-Allow-Origin参数,那么浏览器就会先拿着Access-Control-Allow-Origin的值跟请求头Origin的值进行一个对比,如果一致就接收返回的数据,如果不一致或者压根就没这个参数就会报跨域问题的错误(即第一张图所示)
Dercio: 感谢恩人!
Auto_yaoyao: 最后一个插值法是什么法??
Auto_yaoyao: 同问,中间间隔几个空缺,怎么才能一次输出附近的均值插值。而不是所有数的均值然后每个空缺值都是同一个数。
计算机毕业设计小曾: 可以看下视频https://www.bilibili.com/video/BV1LU4y1b7n3/?spm_id_from=333.999.0.0&vd_source=ddbb9ae2d3b227eb5b015e1af5c72ac4
one、two、three~: 前段的都可以跑 就是后端依赖linux的一些es mysql 等导致部分为服务跑不起来