当前位置:网站首页 > 前端开发 > 正文

前端跨域的理解(前端跨域原理)



首先,我们要了解什么是跨域?

浏览器的同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。

一个域上加载的脚本不允许访问另外一个域的文档属性。

举个例子:比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源),

如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。

何谓同源:URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示它们同源。

在浏览器中,<script>、<img>、<iframe>、<link>等标签都可以加载跨域资源,而不受同源限制,

但浏览器会限制脚本中发起的跨域请求。比如,使用 XMLHttpRequest 对象和Fetch发起 HTTP 请求就必须遵守同源策略。

Web 应用程序通过 XMLHttpRequest 对象或Fetch能且只能向同域名的资源发起 HTTP 请求,而不能向任何其它域名发起请求。

不允许跨域访问并非是浏览器限制了发起跨站请求,而是跨站请求可以正常发起,但是返回结果被浏览器拦截了。

最好的例子是CSRF跨站攻击原理,请求是发送到了后端服务器,无论是否设置允许跨域,

有些浏览器不允许从HTTPS跨域访问HTTP,比如Chrome和Firefox,这些浏览器在请求还未发出的时候就会拦截请求,这是特例。

其次,Vue cli3是如何解决跨域的?

我们再来看看Vue官网是怎么说明的

前端axios跨域问题 axios解决跨域原理_ios

很明显是想让我们新建一个vue.config.js 通过devServe.proxy来进行解决跨域问题;

问题是vue.config.js新建在哪个位置?我们需要在package.json同级目录下新建vue.config.js文件

前端axios跨域问题 axios解决跨域原理_ios_02

新建完之后,在vue.config.js文件里面输入以下代码;target就是我们要请求的后端服务地址;

前端axios跨域问题 axios解决跨域原理_前端axios跨域问题_03

ws表示是否要开通链接websoket请求;changeOrigin表示是否要跨域请求;这里的作用,相当于是替代‘/api’,如果接口中是没有api的,那就直接置空,就像我截图的一样,如果接口中有api,那就得写成{‘^/api’:‘/api’},可以理解为一个重定向或者重新赋值的功能。

前端axios跨域问题 axios解决跨域原理_跨域_04

最后,最关键的一步,就是在我们的main.js中导入axios后要对axios.defaults.baseURL进行设置代理;很多人会把这一步丢掉,造成还是解决不了跨域问题;

如果后端请求接口有多个,或者说请求的端口号不同我们前端该如何处理?

前端axios跨域问题 axios解决跨域原理_axios代理跨域 cli4_05

这时我们可以在proxy中继续新增请求地址;如上图所示;我们可以根据业务需求进行接口配置;

我是这样处理的,在muonted中对axios.defaults.baseURL按照对应的业务需求进行调整;

前端axios跨域问题 axios解决跨域原理_跨域_06

到此这篇前端跨域的理解(前端跨域原理)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 前端跨域的理解(前端跨域的解决方案)2025-09-19 23:18:09
  • 前端工程化工具有哪些(前端工程化解决方案)2025-09-19 23:18:09
  • 前端模块化开发是什么意思(前端模块化开发怎么做)2025-09-19 23:18:09
  • 前端跨域请求头(前端解决跨域请求)2025-09-19 23:18:09
  • 前端埋点怎么写(前端埋点怎么做)2025-09-19 23:18:09
  • 前端埋点方案对比(前端埋点方案对比图)2025-09-19 23:18:09
  • 前端工程化工具有哪些(前端工程化构建工具)2025-09-19 23:18:09
  • 浏览器兼容性前端(浏览器兼容性前端是什么)2025-09-19 23:18:09
  • 前端埋点工具是什么(前端埋点工具是什么意思)2025-09-19 23:18:09
  • 前端埋点框架(前端埋点sdk)2025-09-19 23:18:09
  • 全屏图片