Javascript 如何在请求节点js库中传递cookie
我目前正在使用一个请求来调用HTTP请求 很好用。我的问题是如何传递饼干 这是我做的代码Javascript 如何在请求节点js库中传递cookie,javascript,node.js,http,Javascript,Node.js,Http,我目前正在使用一个请求来调用HTTP请求 很好用。我的问题是如何传递饼干 这是我做的代码 export function triggerSimpleAjax( url, type = 'POST', req_data, onSuccess, onFailure, headers = { 'Content-Type': 'application/json' } ) { const request = require("request"); const
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);
}
})
}
您可以创建一个cookiejar并将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);
});
主要编辑:
请求现在使用,因此语法为:
jar.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))
还有一个同步对应项:
.setCookieSynccookieOrString,当前URL,[{options}]
同步版本的setCookie;仅适用于同步存储,例如默认的MemoryCookieStore
那个是我尝试过的,但jar.add显示为未定义