lei-mu / luch-request

luch-request 是一个基于Promise 开发的uni-app跨平台、项目级别的请求库,它有更小的体积,易用的api,方便简单的自定义能力。
https://www.quanzhan.co/luch-request/
MIT License
631 stars 96 forks source link

是不是响应拦截器不支持nvue页面啊,今天试了一天,发现在nvue页面拦截器不生效 #124

Closed panghuangdehaozi closed 1 year ago

panghuangdehaozi commented 1 year ago

后面没办法改成条件编译了 1691055509911

lei-mu commented 1 year ago

没收到类似问题。请求拦截器和响应拦截器是一样的。

panghuangdehaozi commented 1 year ago

请求拦截器也是不生效的,今天我试过发现请求拦截器的token在nvue页面也没有加载到,后来我改用vuex 在vuex中使用,在vuex中发送请求这样是可以的

lei-mu commented 1 year ago

是不是用了什么在nvue 里不能用的api

panghuangdehaozi commented 1 year ago

我有开了一个新项目,使用了拦截器,创建nvue页面请求并打印数据 1691142106991 在h5页面数据为(此时拦截器生效) 1691142060236 在App端打印的数据为(此时拦截器并未生效) 1691142082517 当我把页面改为vue页面后,重新运行发现App端拦截器又生效了 所以应该是不支持nvue页面请求的~

lei-mu commented 1 year ago

我在模拟器跑了一个demo,页面也是nvue的,是可以应用拦截器的。

import Request from 'luch-request'

const http = new Request({
    baseURL: ''
})

http.setConfig((config) => { /* 设置全局配置 */
  config.baseURL = 'https://www.fastmock.site/mock/26243bdf9062eeae2848fc67603bda2d/luchrequest'
  config.header = {
    ...config.header,
    a: 1, // 演示
    b: 2 // 演示
  }
  config.custom = {
    // auth: false, // 是否传token
    // loading: false // 是否使用loading
  }
  return config
})

http.interceptors.request.use(config => {
    console.log(config);
    config.header.aaaaaaaaaaa =2
    return config
})

http.interceptors.response.use(res => {
    res.data.bbbbbbbbb = 2
    return res
})

export {
    http
}
import {http} from '../service/request.js'

export default {
    updateUser: (data) => http.post('/api/user/update', data)
}
<template>
    <view class="content">

        <button @click="getUser">请求</button>
    </view>
</template>

<script>
import api from '@/api/index.js';
export default {
    data() {
        return {
            title: 'Hello'
        };
    },
    onLoad() {},
    methods: {
        getUser() {
            api
                .updateUser({
                    id: 2
                })
                .then(res => {
                    console.log('局部res', res);
                }).catch(err => {
                    console.log('局部err', err);
                });
        }
    }
};
</script>

<style>

</style>
panghuangdehaozi commented 1 year ago

我今天把我的demo重新跑了一遍,发现又没问题了 麻了