vue-cli 中的proxyTable 请求成功了,但是数据数据未空,怎么回事的呢

( 我请求的接口是thinkphp中的接口,tp接口请求的是node那边的(请假tp接口是获取不到数据的,但是成功了200,数据为null),但是我直接请求node那边的是可以获取到数据的,我怀疑tp这边有问题,但是不知道怎么解决 )

proxyTable: {

  '/api': {
    target: 'http://*********.com/nearby/index.php/Home/NearbyInterface',
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }
},
this.$http.post('/api/showProducts', {openId: 'ohs23uMdqr0s_5T92ssm8PbzqcSg'}).then((response) => {
      console.log(response);
      console.log(JSON.parse(response.body));
    }, (response) => {
      console.log(response);
    });

clipboard.png
我在post接口是没问题的

clipboard.png

阅读 6.5k
3 个回答

thinkphp 后台代码于mysql 数据库操作的,也没反应(链接上了数据库,但是查询返回null)

加上 这个 emulateJSON : true 就可以了

其实还是http协议不懂,是应为请求体的头部,有很多种选择。

新手上路,请多包涵

我也遇到了类似的问题,看了下post在服务端没有接受到参数。还没有解决。。。

图片描述

我配置的是这样的好像没有用?

图片描述

export default function ({

type,
path,
data,
fn,
succFn,
errFn,
tokenFlag,
noLoading,
headers,
opts

}={}) {

var options = {
    method: type,
    url: path,
    headers: //{
        // 'Accept': 'application/json',
        // 'Content-Type': 'application/json',
        //'Access-Control-Allow-Origin': '*'
    //}
    // {
    //     'emulateJSON': true
    // }
     headers && typeof headers === 'object' ? headers : {}
};
this.$store.dispatch('hide_err');
var me = this;
var api_flag = true;
if (api_flag === true) {
    // console.log(Qs.stringify(data))
    // options[type === 'get' ? 'params' : 'data'] = data;

    if (!tokenFlag) {
        data.token = (process.env.NODE_ENV == 'development' ? 'a00b0c45-18b7-d697-47e2-7e2d120362fb' : store.get('token')) //||'a00b0c45-18b7-d697-47e2-7e2d120362fb';  //默认都需要设置token

    }
    //axios 自行将data 转换成键值对
    options[type === 'get' ? 'params' : 'data'] =  data ;//Qs.stringify(data);

    // 分发显示加载样式任务
    if (!noLoading) {
        Vue.$indicator.open()
    }

    //axios内置属性均可写在这里
    if (opts && typeof opts === 'object') {
        for (var f in opts) {
            options[f] = opts[f];
        }
    }

    if (this.$store.state.user.userinfo.base_student_id) {
        var info = {
            base_student_id: this.$store.state.user.userinfo.base_student_id,
            date: new Date(),
            router: this.$route.path,
            api: options.url,
            agent: window.userAgent,
            way: '1'
        };
        window.tuoguan_tongji.push(info);
    }

    console.log(options);
    Vue.axios(options).then((res) => {
        Vue.$indicator.close();
        succFn && succFn(res.data);
        if (res.data.code == 1) {
            fn && fn(res.data);
        } else if (res.data.code == '1001' || res.data.code == '1000') {
            store.remove('token')
            store.remove('userInfo')
            router.push('/userInfo/login')
        } else {
            Vue.$toast(res.data.msg)
        }

    }).catch((err) => {
        Vue.$indicator.close();
        // 跳转到 404 页
        //me.$store.dispatch('show_err');
        errFn && errFn(err.data);
        console.log(err)
    });
} else {
    this.$alert('您没用权限请求该接口!', '请求错误', {
        confirmButtonText: '确定',
        type: 'warning'
    });
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题