前端面试题:关于跨域的问题你了解多少!
程序员文章站
2022-04-20 08:31:54
...
关于前端解决跨域的问题及理解
1、关于出现跨域的问题的源头?
跨域的问题本身是因为请求的域名和用于请求的机器域名不一致导致的。例如我的本地请求域名为:localhost:8080,请求的域名是http:192.168.50.11。在network里面可以看到会接受的返回值,但是控制器会报请求头不一致的跨域问题,是因为浏览器对后台返给我的结果进行了检测,发现俩个环境域名不一致,所以解决的办法就是后台在接受到请求的时候,在返回的信息里面加入指定域名可访问或者所有域名都可访问,这样后端接受到请求之后的返回头里面就指定了对比的请求头,所以前端就可以接受到返回值了。总的来说出现错误是因为(浏览器自身检测域名不同造成的。)
2、如何解决跨域问题?
说真的我们知道原因就行了,因为跨域问题的解决不涉及前端小伙伴。都是后端解决的,如果真想解决的话,以vue为例子吧!
vue.config.js
const webpack = require("webpack");
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:8081/',//你要访问的域名
changeOrigin: true,
wx: true,
pathRewrite: {
'^/api': ''
}
}
}
},
};
//在以后的请求中就可以这样写 login.vue
async login() {
const res = await axios.post('/api/login')
}