Node.js发送前的Http请求
在jQuery中,我们在ajax请求上有Node.js发送前的Http请求,node.js,Node.js,在jQuery中,我们在ajax请求上有beforeSend方法。 Node.js HTTP库中是否有等效的方法 我需要的是:在发送请求之前,我必须获得确切的正文(带有边界等),然后我需要对其签名,并将签名值添加到标头 在jQuery中,我是这样做的: $.ajax({ url: host + path, type: method, data: payload, beforeSend: function (xhr) { addSecurityHeade
beforeSend
方法。
Node.js HTTP库中是否有等效的方法
我需要的是:在发送请求之前,我必须获得确切的正文(带有边界等),然后我需要对其签名,并将签名值添加到标头
在jQuery中,我是这样做的:
$.ajax({
url: host + path,
type: method,
data: payload,
beforeSend: function (xhr) {
addSecurityHeaders(xhr, payload)
})
var request = require('request')
var req = request.post({
url: host + path,
headers: headers,
multipart: {
chunked: false,
data: [
{
'Content-Type': 'multipart/form-data',
'fileName': 'file.png',
body: dataToBeSent
}
]
}
}, function (err, resp, body) {
if (err) {
console.log('Error!');
} else {
console.log('URL: ' + body);
}
});
我的node.js代码如下所示:
$.ajax({
url: host + path,
type: method,
data: payload,
beforeSend: function (xhr) {
addSecurityHeaders(xhr, payload)
})
var request = require('request')
var req = request.post({
url: host + path,
headers: headers,
multipart: {
chunked: false,
data: [
{
'Content-Type': 'multipart/form-data',
'fileName': 'file.png',
body: dataToBeSent
}
]
}
}, function (err, resp, body) {
if (err) {
console.log('Error!');
} else {
console.log('URL: ' + body);
}
});
在发送请求之前执行一个简单的回调怎么样
var beforeSend = function(arg, cb){
// do some stuff
cb(dataToBeSend); // return the needed variable
};
beforeSend(arg ,function(dataToBeSend){
request.post({
// request parameters
data : dataToBeSend
}, function(err, resp, body){
// error handling
});
});
这似乎是非常罕见的用例。所以我将把我的解决方案放在这里。 我
使用request.request.prototype.write
获取我需要签名的请求主体部分。当它添加了所有4个部分后,将先前放置了占位符的标题替换为签名正文。:)
好的,http
会按原样发送您传递的正文,这样您就可以在发送请求之前对其进行签名。但是我可能错了。如果您发出多部分/表单数据请求,它会添加边界。看起来您使用的是request
包,而不是直接使用http
?是var request=require('request')
,也许您可以直接使用。