跨域
一般来说,前后端代码都部署到同一个服务器的话,不会跨域。但是在部署之前,代码调试(联调)时,有时候前后端在不同的域(协议/域名/端口)下,需要解决跨域问题
cors(最简单,只需要后端配置)
// 写在后端代码里,列如php:
// 指定允许其他域名访问 (必写)
header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:POST');
// 响应头设置 (必写)
header('Access-Control-Allow-Headers:x-requested-with,content-type');
proxy(前端项目里配置)
proxy(代理):代理及中间人,是给客户端(正向)或服务端(反向)办事的,包括正向代理和反向代理。正向代理配置于客户端,常常用于访问内网访问外网/提高速度/隐藏真实客户端的Ip;反向代理配置于服务端,通过配置的地址路径(可跨域),把请求分配到不同的服务器,常常用于负载均衡/跨域/提高速度/隐藏真实服务器的ip
所以用于跨域的proxy(代理)是反向代理
// 写在脚手架的配置文件里,如vue项目,在根目录下的vue.config.js
module.exports={
devServer:{
proxy:{
"/api":{
target:"http://www.weather.com.cn/",
changeOrigin:true,
pathRewrite:{
"^/api":""
}
}
}
}
}
// 注意:
// 1. "/api"会被重写成""
// 2. target是目标路径
// 3. 项目必须重启!
jsonp
// 没怎么用过
更多详细内容请看:点我跳转
博客介绍了前后端代码调试时可能出现的跨域问题及解决方法。当代码部署在同一服务器时不会跨域,但调试时前后端处于不同域就需解决。介绍了三种方法,包括只需后端配置的cors、前端项目里配置的proxy(反向代理)以及jsonp。
2376

被折叠的 条评论
为什么被折叠?



