当前位置:   article > 正文

笔记:vue2简单引用接口数据:$http、 axios、ajax_vue2 获取接口数据

vue2 获取接口数据

一、$http(未尝试)

  1. this.$http.get('/url',[options]).then(successCallback,errorCallback);
  2. this.$http.post('/url',[body],[options]).then(successCallback,errorCallback);

二、 axios

1、安装 npm i axios vue-axios --save
2、main.js中添加:
  1. import axios from 'axios'
  2. import VueAxios from 'vue-axios'
  3. Vue.use(VueAxios,axios);//注意需要先注册VueAxios

3、获取接口数据

  1. this.axios({
  2. url:'http://...../data'
  3. }).then(res=>{
  4. console.log(res);
  5. })

三、axios方式解决跨域问题:

例接口链接:https://hlj.*******.cn/proxy/getPlans?type=1&&size=100

1、修改vue.config.js文件

        配置代理proxy,修改vue.config.js文件后需要重启项目

  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3. transpileDependencies: true,
  4. lintOnSave: false,
  5. publicPath: './',/**打包后的路经重定向**/
  6. devServer: {
  7. //配置代理(解决跨域)
  8. proxy:{
  9. '/api':{ //这个就是的标识,当接口用 api 开头才用代理
  10. target:'https://hlj.*****.cn/', //需代理的后端接口
  11. // pathRewrite:{ '^/api':'/'}, //重写匹配的字段。把/api 转为 /
  12. pathRewrite:{ '^/api':''}, //重写匹配的字段。把/api 转为 空
  13. changeOrigin:true //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
  14. }
  15. }
  16. },
  17. })
2、获取接口数据
  1. this.axios.get('/api/proxy/getPlans',{
  2. params:{
  3. type: 1,
  4. size: 100,
  5. }
  6. }).then(res=>{
  7. console.log(res);
  8. }).catch(err=>{
  9. console.log(err);
  10. })
3、上传服务器后可能需要配置nginx反向代理

        location /api/ {rewrite ^/api/(.*) /$1 break;  proxy_pass https://hlj.*****.cn/;}

  1. server
  2. {
  3. listen 80;
  4. server_name xxxxx.cn; #本机主机名
  5. #跨域请求代理配置
  6. location /api/ {
  7. rewrite ^/api/(.*) /$1 break;
  8. proxy_pass https://hlj.*****.cn/;
  9. }
  10. ............

 四、axios的基本使用

1、提交数据post
  1. this.axios.post(('/user/login'),{
  2. username:'rourou',
  3. password:'1225'
  4. }).then((res)=>{
  5. this.$cookie.set('userId',res.id,{expires:'1M'});
  6. this.$router.push('/index')//路由跳转
  7. }).catch((err)=>{
  8. console.log(err);
  9. })
2、读取数据get
  •  并发请求,通用模式,方式可定义为get或post
  1. axios({
  2. method:'get',
  3. url:'/product',
  4. data:{
  5. id:'1225',
  6. }
  7. }).then(res=>{
  8. this.product=res
  9. }).catch(err=>{
  10. console.log(err);
  11. })
  • 直接在url地址中传入参数(传入动态路由
  1. this.axios.get((`/products/${id}`)).then((res)=>{//通过id调用商品接口
  2. this.product=res
  3. }).then(res=>{
  4. this.product=res
  5. }).catch((err)=>{
  6. console.log(err);
  7. })
  • params进行传参
  1. this.axios.get('/products',{
  2. params:{
  3. id:'1234'
  4. }
  5. }).then(res=>{
  6. console.log(res);
  7. }).catch(err=>{
  8. console.log(err);
  9. })

五、ajax(未尝试)

1、安装jQuery   npm install jquery --save
2、发起AJAX请求
  1. this.$.ajax({
  2. url: '/api/data',
  3. type: 'GET',
  4. dataType: 'json'
  5. }).done(response => {
  6. console.log(response)
  7. }).fail(error => {
  8. console.error(error)
  9. })
3、跨域

        dataType: 'jsonp'

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/534776
推荐阅读
相关标签
  

闽ICP备14008679号