AEM Servlet请求跳转至login.html:前端Axios配置排查求助
前端Axios请求Servlet的错误排查与修正
先梳理你代码里的几个关键问题:
- 错误携带CORS响应头:
Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers这些是服务器返回给浏览器的响应头,前端发起请求时不需要携带,属于冗余无效配置,反而可能干扰请求正常发送。 - Cookie配置位置错误:axios中Cookie不能作为顶级配置项,必须放在
headers对象内;若你是从Postman复制的Cookie,需手动写入headers.Cookie字段,仅靠withCredentials: true无法自动携带非当前域的Cookie。 - GET请求不必要的Content-type头:GET请求没有请求体,设置
Content-type: application/json毫无意义,甚至可能让服务器对请求产生误解。 - Promise链式调用逻辑错误:
catch的第二个回调参数多余,且该回调中引用的response未定义,会引发报错;同时await与.then/.catch混写易造成逻辑混乱,建议统一风格。
修正后的代码示例
try { const response = await axios.get(url, { headers: { 'Accept': '*/*', 'Authorization': 'Basic YWRtaW46YWRtaW4=', 'Cookie': "cq-authoring-mode=TOUCH;" }, withCredentials: true, params: { path: rootPath, maxCount: sourceMax } }); console.log(response); } catch (err) { console.log(err); }
额外验证点
- 打开浏览器控制台的Network面板,对比前端请求与Postman请求的Headers,确认是否存在其他差异(比如User-Agent),可将Postman的请求头全部复制到axios中测试。
- 检查请求的响应状态码,若出现401/403,需确认Authorization头是否正确;若出现CORS相关错误,需再次验证服务器的CORS配置是否包含
Access-Control-Allow-Credentials: true。
内容的提问来源于stack exchange,提问作者Neph
相关产品推荐
相关产品推荐

