Vue前端使用加密协议后,请求后端也变成https了,最近写了一个项目,前后端分离,前端与后端二级域名存在
跨域问题,开始使用http协议还没啥问题,后面考虑安全问题就部署了证书,于是就出现上面的问题了,请求后端自动变为为https协议,而后端接口域名并没有布置证书。
方法一
后端域名也布置加密协议ssl证书,当然有钱可以套CDN,没钱不嫌麻烦可以可以后端加密后在去加密验证就可以请求无加密url,去加密可参考以下代码
补充:两端加密后html也要在head标签中加上以下代码
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/>
方法二
前端由于网络操作都要经过浏览器,浏览器自身要做安全上的保障,所以不能忽略证书调用,但vue是基于nodejs上开发的可以试试下面
安装以下模块
npm i https
npm i axios
代码
import https from 'https';
import unSSL from 'axios'; //导入时先自定义其他名称
//全局
const axios = unSSL.create({ //现在就可以将模块定义名称为axios了
httpsAgent: new https.Agent({ rejectUnauthorized: false })
});
axios.get('https://something.com/foo'); // 在 axios 请求时,选择性忽略 SSL
//单独配置
const agent = new https.Agent({ rejectUnauthorized: false });
unSSL.get('https://something.com/foo', { httpsAgent: agent });