我当前正在使用一个请求,使用request
来调用HTTP请求工作正常。我的问题是如何传递cookie?
这是我所做的代码
export function triggerSimpleAjax(
url,
type = 'POST',
req_data,
onSuccess,
onFailure,
headers = {
'Content-Type': 'application/json'
}
) {
const request = require("request");
const jar = request.jar();
const cookie = request.cookie("name=John");
jar.add(cookie);
let options = {
url: url,
method: type.toUpperCase(),
headers: headers,
json: req_data
}
// console.log('********************************** API Starts here **********************************');
request(options, (error, response, body) => {
if (!error && response.statusCode == 200) {
onSuccess(response.body);
} else {
if (typeof onFailure === 'function') onFailure(response.body);
}
})
}
答案 0 :(得分:1)
您可以创建一个cookie罐并将cookie添加到其中,并随请求发送。
const request = require("request");
const jar = request.jar();
const cookie = request.cookie("name=John");
//Doesn't work anymore jar.add(cookie);
jar.setCookie(....);
request({
uri: "...",
method: "...",
jar: jar
}, function(error, response, body) {
console.log(body);
});
主要编辑:
request
现在使用tough-cookie
,因此语法为:
jar.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))
还有一个sync
对应对象:
.setCookieSync(cookieOrString,currentUrl,[{options}])
setCookie的同步版本;仅适用于同步存储(例如默认的MemoryCookieStore)。