vue每日一问(8)

52 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

一。Vue项目中你是如何解决跨域的呢

跨域本质是浏览器基于同源策略的一种安全手段

同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能

所谓同源(即指在同一个域)具有以下三个相同点

  • 协议相同(protocol)
  • 主机相同(host)
  • 端口相同(port)

反之非同源请求,也就是协议、端口、主机其中一项不相同的时候,这时候就会产生跨域

解决跨域的方法有很多,下面列举了三种:

  • JSONP

    • 需要前端和后端高度配合
    • 只支持get请求方式
  • CORS

    • 最省事,不需要前端做任何事情,后端接口允许跨域就行
  • Proxy

    • 代理(Proxy)也称网络代理,是一种特殊的网络服务,允许一个(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。

二。history路由模式署到服务器刷新后报404是什么原因呢?

为什么history模式下有问题:

Vue是属于单页应用(single-page application)

SPA是一种网络应用程序或网站的模型,所有用户交互是通过动态重写当前页面,前面我们也看到了,不管我们应用有多少页面,构建物都只会产出一个index.html

比如:我们输入 www.baidu.com 打开的是 dist 目录下的 index.html 文件,刚开始打开的是首页,然后跳转到登录页,地址栏会变成 www.baidu.com/login ,这个时候刷新页面在服务器中根本找到www.baidu.com/login 对应的资源,所以报404

解决方案:

在部署项目的时候,我们以nginx服务器为例,需要配置.conf文件

server {
  listen  80;
  server_name  www.xxx.com;
​
  location / {
    index  /data/dist/index.html;
    try_files $uri $uri/ /index.html;
  }
}

三。你是怎么处理vue项目中的错误的?

主要的错误来源包括:

  • 后端接口错误

    • 需要跟后端沟通,共同找出最好的解决方案
  • 代码中本身逻辑错误

    • 调试程序,慢慢排查