前后端分离_Vue_axios本地跨域(前端localhost:8080到后端localhost:80)
这两天一直搞vue的前后端分离,其中绕不开的就是axios跨域问题,然后找了好多axios的本地跨域文章,跟着设置也会报没有访问权限的错,最后还是找到了本地跨域配置方法。
1.首先配置vue
在main.js加入
import Axios from "axios"
Vue.prototype.$axios = Axios
Axios.defaults.baseURL = "http://127.0.0.1/" //配置默认发送请求到http://127.0.0.1/,可改或者加端口号
2.接着配置config/index.js,找到proxyTable
proxyTable: {
'/api': {
target: 'http://127.0.0.1/',//设置调用的接口域名和端口号(默认端口号80)
changeOrigin: true,
pathRewrite: {'^/api': '' }
//这里理解成用‘/api’代替target里面的地址,
//后面组件中我们掉接口时直接用api代替
//比如我要调用'http://40.00.100.100:3002/user/add',
//直接写‘/api/user/add’即可
}
},
3.如果是开发模式就可以在config/dev.env.js配置
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
API_HOST:"/api/"
})
4.发送请求
this.$axios.get("/ThinkPHP5.0/public/index.php/admin/Index/lalala",{params:{}})
.then(response =>{console.log(response);现在前端配置已经好了,但是如果就这样的话,控制台会报错,说你没有权限(Response to preflight request doesn’t pass access control)
最后一步就是在后端接口加一个 header("Access-Control-Allow-Origin: *");表示接受任何访问,举一个例子。
*可以改成某个网址,这样就只有这个网址才可以访问这个接口
public function lalala(){
header("Access-Control-Allow-Origin: *");
return "123";
}
最后贴张控制台的图,最后要说的就是这只是开发环境本地跨域的设置,上线模式更加复杂。
- 前后端分离的j2ee的web项目,使用vue方式,即{{}}方式批量传入前端参数,遇到一个一个问题,页面上一开始有{{}},怎么处理?
- 使用vue-cli+axios构建的项目本地环境API代理设置和解决跨域
- vue踩坑系列——前后端分离的接口跨域问题
- nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
- vue+springboot前后端分离实现单点登录跨域问题解决方法
- 前后端分离,前端跨域访问后台的两种方式
- 前端在本地模拟跨域获取后端数据
- nodeJS(express4.x)+vue(vue-cli)构建前后端分离详细教程(带跨域)
- web前端环境tomcat安装及如何用localhost:8080/**访问到项目以及如何使新建的本地项目和github链接起来
- Node学习(4)vue+node 前后端分离项目ajax跨域session问题解决
- 前后端分离之VueJS前端
- Vue proxyTable 开发环境下前端和后端真实数据对接问题和解决跨域
- 前后端分离,前端跨域访问后台的两种方式
- vue+djangorestframework打造前后端分离项目(一)之drf的ViewSet、router和跨域
- vue前后端分离使用fetch 跨域请求时 session失效问题解决
- 前后端分离之VueJS前端
- vue学习第24天,启动本地MongoDB 启动node搭建的服务器 设置跨域 调用接口
- 一个前端与后端分离的架构实例
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
- 前后端分离之本地数据调试——mockJs的应用