ajax 401 但postman成功

问题遇到的现象和发生背景

登录之后拿到token之后,请求后端数据的时候加上token报401了,弹出浏览器登录的框

问题相关代码,请勿粘贴截图

postman的请求

img


ajax


      $.ajax({
            headers: {
                'Authorization': "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlVzZXJDb2RlIjoidGVzdGxvZ2luIn0.XEyxn0w71UCCkMVwLFRiEv-x4beldv-Nza4OzpD5xEk"
                , 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  //multipart/form-data;boundary=--xxxxxxx   application/json
            },
            type: 'put',
            url: "http://XXX.XXXX.xxxx:xxx/getLoginUserInfo?userCode=testlogin",
            dataType: 'jsonp',
            contentType: 'application/json',
             success: function (res) {
                console.log(res);
            }, error: function (err) {
                console.log(err)
            }
        })

运行结果及报错内容

img

img

img

img

我的解答思路和尝试过的方法

网上找了很久说是 , 这个 401 的状态码是因为鉴权不通过的原因造成的。
你问题的原因在于, Content-Type 类型不正确,应该是 form 表单提交的方式。所以可以改成下面的这种格式试试看

headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
但是没效果
求各位赐教!

你这是鉴权失败吧

你看一下你的request中有Authorization吗,在代码里写了,但我看你截图里request中没看到,如果没有的话就和后台对一下服务端是否配置了接收Authorization这个头字段

img

应该是类似这样的

img

img

已经可以了,感谢各位!
const token = JSON.stringify(store.state.user.token);
是应该token转义了,后端解析不了 ,改了就可以了
const token = store.state.user.token