持续创作,加速成长!这是我参与「掘金日新计划 · 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项目中的错误的?
主要的错误来源包括:
-
后端接口错误
- 需要跟后端沟通,共同找出最好的解决方案
-
代码中本身逻辑错误
- 调试程序,慢慢排查