Axios发送PUT请求时身份验证数据应该放在哪个位置?
问题核心原因排查
- 路径参数与请求体参数不匹配:你当前请求URL路径中携带的邮箱是
salesman@random.com(URL编码后为salesman%40random.com),但请求体data中填写的userMailId是correctemail@email.com,二者不一致,接口会判定参数非法返回401。根据接口设计规则,路径中的邮箱参数需要和实际用于登录的邮箱完全一致。 - 缺少显式请求头声明:部分严格的接口要求必须显式携带
Content-Type: application/json请求头,虽然Axios默认会自动添加该头,但建议手动声明避免异常。 meta字段值不符合要求:你当前代码中meta字段填的是占位符"string",实际接口可能要求该字段传特定值,你可以对照Codepen示例中实际发送的请求参数,替换为正确的meta值。
修正后的代码示例
const apiCall = async () => { try { // 把此处的邮箱替换为你实际的登录邮箱,和路径参数保持一致 const loginEmail = "correctemail@email.com"; const res = await axios({ method: "put", url: `https://api-core-dev.caronsale.de/api/v1/authentication/${encodeURIComponent(loginEmail)}`, headers: { "Content-Type": "application/json" }, data: { userMailId: loginEmail, authenticationRequest: { password: "你的正确登录密码", meta: "替换为Codepen示例中实际使用的meta值" } } }); console.log("请求成功,AuthKey为:", res.data); } catch (err) { console.error("请求报错:", err.response?.data || err.message); } };
额外排查建议
如果修改后仍然报错,可以打印请求的完整响应体err.response.data,查看接口返回的具体错误提示,进一步定位问题。
内容的提问来源于stack exchange,提问作者relativenoob
相关产品推荐
相关产品推荐

