当前位置: 首页 > 知识库问答 >
问题:

javascript - uniapp封装的request方法,GET请求一直携带token?

阮星火
2023-05-31
const url = {
    web_url: 'http://127.0.0.1:8000',
}
import $store from '@/store/index.js'
export default {
    // 设置公共参数
    common: {
        method: 'GET',
        // 请求头
        header: {
            'content-type': 'application/json'
        },
        // 请求数据
        data: {}
    },

    // 设置通用请求
    request(options = {}) {
        // 请求地址
        options.url = `${url.web_url}${options.url}`
        // 默认请求方法
        options.method = options.method || this.common.method
        // 设置请求头
        options.header = options.header || this.common.header

        // 使用tong请求
        if(options.token){
            options.header.authorization = `Bearer ${$store.state.userToken}`
            if(!options.header.authorization){
                return uni.showToast({
                    title: '您还未登录,请先登录',
                    icon: 'none'
                })
            }
        }


        // 设置请求
        return new Promise((resolve, reject) => {
            return uni.request({
                ...options,
                // 请求成功
                success: (res) => {
                    // 请求成功返回数据
                    return resolve(res)
                },
                fail: (err) => {
                    uni.showToast({
                        title:'请求失败',
                        icon:'none'
                    })
                    // 停止下拉刷新
                    uni.stopPullDownRefresh()
                    return reject(err)
                }
            })
        })
    },

    // 封装get 请求
    get(url, data = {}, options = {}) {
        options.url = url
        options.data = data
        options.method = 'GET'
        return this.request(options)
    },
    // 封装post请求
    post(url, data = {}, options = {}) {
        options.url = url
        options.data = data
        options.method = 'POST'
        return this.request(options)
    }
}

使用GET请求例如:

get('/user/', {}, {token: true}).then(res => {}).catch(err => {})

只要有一个get请求参数为:token:true, 后面的所有请求都会自动带上authorization和令牌访问,这是怎么回事?

即使传参不带token,请求链接上也会带上authorization和令牌访问,这是哪里出问题了吗?

get('/goods/').then(res => {}).catch(err => {})

共有1个答案

东方和煦
2023-05-31

get('/goods/', {}, { token: false }).then(res => {}).catch(err => {})
这样看看吧

 类似资料:
  • 本文向大家介绍详解封装基础的angular4的request请求方法,包括了详解封装基础的angular4的request请求方法的使用技巧和注意事项,需要的朋友参考一下 为什么要封装呢? angular4自身提供的请求方法是用Observable来实现的。用的是观察者模式,个人认为这用来写请求是非常方便的。 一个项目里会有非常多的不同的请求,但是其实每个请求都会有些共性。比如:每个请求都要传Au

  • 用uniapp 写APP、怎么接口请求错误了,在H5上面是能请求成功的 在手机模拟器上面报错的信息是:

  • 本文向大家介绍Angular网络请求的封装方法,包括了Angular网络请求的封装方法的使用技巧和注意事项,需要的朋友参考一下 很多时候,我很喜欢angular的编码风格,特别是angular支持typescript之后,完整的生命周期,完美的钩子函数,都是别的语言所无法替代的。 这里我来说说我自己的网络请求封装,某种意义上来说,angular自己的网络请求封装的很好的,我们没有必要再来画蛇添足,

  • vue项目中嵌了一个iframe,iframe中需要登录,login请求必须携带cookie,请问应该怎么写才能正确携带呢 想要iframe中的login请求能正确携带cookie

  • 问题内容: 我有这个API: 但是in始终返回null。我可以将@GET更改为@POST,并且可以使用,但是我并没有真正执行创建或更新操作,因此使用post似乎很奇怪。 有没有办法通过球衣的GET请求获得身体? 问题答案: TL; DR 正确的解决方案是使用POST。 “我可以将@GET更改为@POST,并且可以,但是我并没有真正执行创建或更新操作,因此使用post似乎很奇怪” 为什么这么奇怪?P

  • 问题内容: 将请求正文与GET请求一起传递是否违反REST风格? 例如在Elasticsearch中过滤一些信息 甚至设计了一些工具来避免GET请求中的请求主体(例如邮递员) 问题答案: 从RFC: GET请求消息中的有效负载没有定义的语义。在GET请求上发送有效内容正文可能会导致某些现有实现拒绝该请求。 换句话说,这不是禁止的,但是它是未定义的行为,应避免使用。HTTP客户端,服务器和代理可以随