带有会话 ID 的 Axios post 请求
Axios post request with jsession id
我需要远程登录 Spring-build IP 服务器才能从中获取图像。我能够传递表单数据并从另一个调用中获取 jsessionid,但我无法登录系统。
我的应用程序中有 express、axios、axiosCookieJar 和 tough - 问题是,即使我认为我能够从对 IP 服务器的第一次调用中获取 cookie,我也无法正确传递它进入第二个电话。我无法登录到服务器并更改它的身份验证,因为它是遗留的,而且它可能弊大于利 - 因此,我需要找到一种方法来从 NodeJS 客户端验证我的会话。
const logIn = async (address, bodyFormData) => {
const logIntoIP = await axios.request({
url: `${ipLinkCompose(address)}`,
method: "POST",
mode: "cors",
headers: {
"Content-Type": "multipart/form-data",
"Access-Control-Allow-Origin": "*",
Cookie: cookieJar.getCookiesSync(addressip)
},
withCredentials: true,
data: bodyFormData
});
};
我可以使用 Postman 执行相同的调用 - GET 请求到 IP 服务器以获取 jsessionid,然后第二个 POST 请求使用传递 username/password 的表单数据。
作为我当前通话的结果,我得到 "Invalid username or password" - 因此 multipart/form-data 有效。
您是否尝试过使用来自 postman 的完整 cookie 详细信息。这听起来像我遇到的类似问题。它适用于邮递员,但不适用于 axios。我做了这样的事情并且成功了。在我刚刚拥有 JSESSIONID 之前。我将从邮递员回复中获得的其余信息添加到 cookie 字段,并且有效。
axios
。要求({
url: "http://url",
方法:"get",
headers:{
饼干:"JSESSIONID=???; path=/???; domain=???; HttpOnly; Expires=Tue, 19 Jan 2038 03:14:07 GMT;"
}
})
解决方案是 - 服务器正在使用 Digest 授权,因此任何尝试都失败了。我能够深入研究日志并在应用程序中找到它。
我需要远程登录 Spring-build IP 服务器才能从中获取图像。我能够传递表单数据并从另一个调用中获取 jsessionid,但我无法登录系统。
我的应用程序中有 express、axios、axiosCookieJar 和 tough - 问题是,即使我认为我能够从对 IP 服务器的第一次调用中获取 cookie,我也无法正确传递它进入第二个电话。我无法登录到服务器并更改它的身份验证,因为它是遗留的,而且它可能弊大于利 - 因此,我需要找到一种方法来从 NodeJS 客户端验证我的会话。
const logIn = async (address, bodyFormData) => {
const logIntoIP = await axios.request({
url: `${ipLinkCompose(address)}`,
method: "POST",
mode: "cors",
headers: {
"Content-Type": "multipart/form-data",
"Access-Control-Allow-Origin": "*",
Cookie: cookieJar.getCookiesSync(addressip)
},
withCredentials: true,
data: bodyFormData
});
};
我可以使用 Postman 执行相同的调用 - GET 请求到 IP 服务器以获取 jsessionid,然后第二个 POST 请求使用传递 username/password 的表单数据。
作为我当前通话的结果,我得到 "Invalid username or password" - 因此 multipart/form-data 有效。
您是否尝试过使用来自 postman 的完整 cookie 详细信息。这听起来像我遇到的类似问题。它适用于邮递员,但不适用于 axios。我做了这样的事情并且成功了。在我刚刚拥有 JSESSIONID 之前。我将从邮递员回复中获得的其余信息添加到 cookie 字段,并且有效。
axios 。要求({ url: "http://url", 方法:"get", headers:{ 饼干:"JSESSIONID=???; path=/???; domain=???; HttpOnly; Expires=Tue, 19 Jan 2038 03:14:07 GMT;" } })
解决方案是 - 服务器正在使用 Digest 授权,因此任何尝试都失败了。我能够深入研究日志并在应用程序中找到它。