业务经理

微信扫描以上二维码

028-61286886

技术咨询

怎么使用用户登录接口登录授权码登录账号返回一个是什么意思

迅睿框架 更新 2021-07-14 23:28:06 834427951

怎么使用:用户登录接口(登录授权码)

image登录账号返回一个form?是什么意思

方案

  • 官方插件技术-何老师 #1 · 2021-07-14 22:43:42
    登录账号返回一个form说明不是post方式啊参考文档:《用户登录接口(登录授权码)》
  • 王兴业 #2 · 2021-07-14 22:55:17
    需要post请求
  • haoming04 #3 · 2021-07-14 23:08:29
    请求方式不对,你这是get请求,提交都要改成post请求
  • 834427951 #4 · 2021-07-14 23:09:10
    官方插件技术-何老师
    image
    物我提交的是post方式
  • 官方插件技术-何老师 #5 · 2021-07-14 23:11:26
    不一定是post,
    image
    这个应该不是post的参数具体你看看你客户端的文档 参数规范性,每个客户端语言几乎不一样,总之你这个一定不是post
  • 834427951 #6 · 2021-07-14 23:12:00
    官方插件技术-何老师 好的,谢谢老师,我检查下
  • 在路上 #7 · 2021-07-14 23:12:03
    axios的post请求不是你这么写的呢
  • 834427951 #8 · 2021-07-14 23:14:44
    在路上 大佬,可否赐教一下小弟
  • 初次使用 #9 · 2021-07-14 23:17:04
    满意答案
    要做的需求很简单,就是一个axios的简单请求,如下:
    axios({
        method: 'post',
        url: '/api/login',
        data: {
            username,
            pwd
        }})
    但是问题来了,后端说取不到我的username和pwd,问题又来了,我确实传过去了,黑人问号脸???,然后我找了一下资料,终于把值成功传过去,后端也成功取到了。原因:后端用的框架是 spring mvc ,并且在这个方法上使用了注解 @RequestParam,这个就只能从请求的地址中取出参数,也就是只能从 username=admin&pwd=11111 这种字符串中解析出参数,也就是编码格式(content-type)为:application/x-www-form-urlencode。(表单form的enctype属性的编码方式有两种:application/x-www-form-urlencode和multipart/form-data),但是axios会把请求的数据转换成json格式,即为:application/json;charset=UTF-8,所以格式不同,就取不值了。解决方案我尝试了有6种,大家可以根据自己的需求选择:1.用 URLSearchParams
    let param = new URLSearchParams()param.append('username', 'admin')param.append('pwd', 'admin')
    axios({
        method: 'post',
        url: '/api/login',
        data: param
    })
    缺点:兼容性不太好。2.设置Content-Type(1)axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; 或者:{headers:{'Content-Type':'application/x-www-form-urlencoded'}} (2)引入 qs (这个库是 axios 里面包含的,直接引入,无需下载)。
    import Qs from 'qs'let data = {
        "username": "admin",
        "pwd": "admin"
    }axios({
        headers: {
            'deviceCode': 'A95ZEF1-47B5-AC90BF3'
        },
        method: 'post',
        url: '/api/login',
        data: Qs.stringify(data)
    })
    3.设置transformRequest因为我们的请求编码格式是被axios更改的,那我们也可以进去设置,如下:
    import Qs from 'qs'axios({
        url: '/api/login',
        method: 'post',
        transformRequest: [function(data){       
             // 对 data 进行任意转换处理        
            return Qs.stringify(data)
        }],
        headers: {
            'deviceCode': 'A95ZEF1-47B5-AC90BF3'    },
        data: {
            username: 'admin',
            pwd: 'admin'    }
    })
    4.重写一个 axios 实例,重新实现属于我们自己的 transformRequest
    import axios from 'axios'let instance = axios.create({
        transformRequest: [function transformRequest(data, headers) {
            normalizeHeaderName(headers, 'Content-Type');
            if (utils.isFormData(data) ||          utils.isArrayBuffer(data) ||          utils.isBuffer(data) ||          utils.isStream(data) ||          utils.isFile(data) ||          utils.isBlob(data)
            ) {
              return data;
            }
            if (utils.isArrayBufferView(data)) {
              return data.buffer;
            }
            if (utils.isURLSearchParams(data)) {
              setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
              return data.toString();
            }
            /*改了这里*/       
     if (utils.isObject(data)) {
              setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
              let _data = Object.keys(data)
              return encodeURI(_data.map(name => `${name}=${data[name]}`).join('&'));
            }
            return data;
        }],
    })
    5.axios.post('/api/lockServer/search',"userName='admin'&pwd='admin'");6.我们知道服务端用的是 @RequestParam(通过字符串解析出参数) ,其实还有另一种是 @RequestBody(从请求体中获取参数),让后端改成 @RequestBody也可以。
  • 张小佛 #10 · 2021-07-14 23:23:12
    你这是请求方式不对,服务端接收的get,并不是post
  • 834427951 #11 · 2021-07-14 23:27:44
    初次使用 牛逼,我会了,请求到了,在这里谢谢各位的解答 😀
  • 834427951 #12 · 2021-07-14 23:28:06
    @初次使用:66666666666

迅睿系统漏洞

多语言翻译Seolang
多语言翻译Seolang(2026-09-21)
1. 新增译文数据备份恢复页面,支持断点续传 2. 多语言声明中心...
AI文章生成器
AI文章生成器(2026-09-20)
任务拆分独立配置 新增AI生成关键词 新增指令模板 新增品牌信...
GEO系统
GEO系统(2026-09-20)
后台 AEO 与运营端对齐:区域、跑批、CSV、补强、剧本均可在迅睿...
GeoSeo工具箱
GeoSeo工具箱(2026-09-18)
修正菜单规范
后台二次登陆验证
后台二次登陆验证(2026-09-18)
新增邮箱验证 新增短信验证
京东云短信
京东云短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
创蓝短信
创蓝短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
火山引擎短信
火山引擎短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
外贸多语言建站
外贸多语言建站(2026-09-17)
优化独立内容过滤机制