前后端交互的要点

面试可能会问的

1.token怎么储存

答:token取来后一般本地保存在sessionStorage或者localStorage中,在请求中保存在cookie或者请求头中,(如果保存在cookie中,每次请求浏览器自动携带,不需要我们手动写在代码里,但是存在安全隐患。),这里还可以加上,还保存在vuex中,因为vuex是基于内存的,在实际操作中,速度会比ls更快,因为ls是基于磁盘的,同时只要不刷新页面,vuex的优势是能一直体现出来的,之所以放到ls或者cookie中,是因为vuex会因为页面刷新而丢失数据,所以存放到本地实际上是为了实现token在vuex中的持久化存储。持久化存储的细节就两步,描述起来第一步就是存到vuex和ls/cookie中,然后在vuex的state的token数据初始化的时候判断ls和cookie中是否有值,有就取,无则将token置空。

2.post和get的区别

答:主要三大区别,分别是缓存的区别,传参时的区别还有请求头中的区别。

原文链接JS中 post和get的区别_js中get和post的区别-CSDN博客

(此处内容为摘抄)

缓存主要是针对url进行的,所以

get请求默认是有缓存的,因为随着携带的参数不同,url是不同的

post请求不会缓存

传参时的区别在于get的参数在url里面,post是将参数放到请求体里面(这里记住,是在请求体里面),get的参数一般不大于8k

请求头中,post请求会多出一行,叫Content-Type,如果没有这个,post请求不会生效。

3.跨域的出现以及解决办法

跨域的原因是浏览器的同源策略,不同协议,不同域名,不同端口都会导致跨域

(摘抄)

JSONP技术,CORS技术,同一域名下设置代理,HTML5的postMessage方法,WebSocket

请各位补充

工作中实际会遇到的坑

1.Content-Type引起的前端传输的数据后端收不到

post请求的时候,一般是因为后端需要的数据格式和前端传的不同

解决办法:

npm install qs

在项目中

import qs from 'qs'

然后就在需要的地方,将数据处理,qs.stringify(data)即可

原理太多,就不说了。

2.zip和rar格式的文件上传时如果写了if(Content-Type的值==='application/octet-stream之类的'),可能会被提示格式不对。

解决办法:

判断条件改成判断文件后缀名if(文件名.subString(文件名.lastIndexOf("."))+1) === "zip"

​​​​​​​substring得小写。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值