【发布时间】:2019-07-02 20:37:47
【问题描述】:
我需要远程登录 Spring-build IP 服务器才能从中获取图像。我能够传递表单数据并从另一个调用中获取 jsessionid,但我无法登录系统。
我的应用程序中有 express、axios、axiosCookieJar 和强硬 - 问题是,即使我能够从第一次调用 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 执行相同的调用 - 向 IP 服务器发出 GET 请求以获取 jsessionid,然后使用传递用户名/密码的表单数据进行第二个 POST 请求。
由于我当前的呼叫,我得到“无效的用户名或密码” - 所以 multipart/form-data 有效。
【问题讨论】:
-
"Access-Control-Allow-Origin": "*",是一个 response 标头,它在请求中没有位置。
标签: javascript node.js axios jsessionid