跨域遇到的一系列问题
栏目: JavaScript · 发布时间: 6年前
内容简介:前端使用的vue,后端使用的express。没有使用vue的proxyTable,就是作为后端解决一下这个跨域解决办法:设置Access-Control-Allow-Orign。我的后端一开始只设置了允许http://pylon.xueersi.com域名,但是没有带上端口号。当前端设置withCredentials:true时,表示前端允许跨域的后端接口种cookie
前端使用的vue,后端使用的express。没有使用vue的proxyTable,就是作为后端解决一下这个跨域
解决代码
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://h5.xesv5.com:8081')
res.header('Access-Control-Allow-Credentials', true)
res.header("Access-Control-Allow-Headers", "Content-Type,Accept,X-Requested-With,traceid,rpcid")
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS")
res.header("Content-Type", "application/json;charset=utf-8")
if (req.method == 'OPTIONS') {
res.sendStatus(200)
} else {
if (req.path.indexOf('/getUserInfo') < 0 && (!req.session || !req.session.userInfo)) {
res.send({
stat: 1230,
message: '登录失效'
})
} else {
next()
}
}
})
复制代码
问题一:域名不一致的跨域提示
解决办法:设置Access-Control-Allow-Orign。我的后端一开始只设置了允许http://pylon.xueersi.com域名,但是没有带上端口号。
问题二: 后端没有设置Access-Control-Allow-Credentials
当前端设置withCredentials:true时,表示前端允许跨域的后端接口种cookie
解决办法:后端也需要在请求头设置Access-Control-Allow-Credentials:true
问题三:设置Credentials后,Access-Control-Allow-Origin需要指定域名,不可以设置*
问题四:前端在请求头上设置了参数,后端需要允许请求头设置该参数
解决办法:如果前端需要在请求头里加上token字段,后端这边需要Access-Control-Allow-Headers设置
res.header("Access-Control-Allow-Headers", "Content-Type,Accept,X-Requested-With,token")
复制代码
补充:axios请求头设置参数
config.headers.common['token'] = 123 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
来吧!带你玩转 Excel VBA
罗刚君、杨嘉恺 / 电子工业出版社 / 2013-7 / 85.00元
本书旨在普及Excel VBA 基础理论,以及通过VBA 的高级应用扩展Excel 的功能,提升读者的制表效率,解决工作中的疑难,同时亦可借此开发商业插件。 本书主要分为操作自动化引言篇、入门篇、进阶篇和疑难解答篇,覆盖从入门到提高的所有内容,以满足不同层次的读者需求。其中操作自动化引言篇简述了操作自动化的需求与方式,借此引出VBA 入门篇。VBA 入门篇包含第2 章到第13 章,主要介绍了......一起来看看 《来吧!带你玩转 Excel VBA》 这本书的介绍吧!