我有一个React应用程序,我使用https
模块来调用API。我需要能够从响应头中检索x-request-id,但是响应头只返回content-type
。如何才能让x-request-id
显示在响应标题中?
以下是我的代码示例:
import https from 'https';
getData(bodyData) {
return new Promise((resolve) => {
const postData = JSON.stringify(bodyData);
const request = https.request({
hostname: 'https/myhostname',
path: '/my/path',
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'x-api-key': 'MY_ID',
authorization: 'MY_TOKEN',
'x-product': 'MY_PRODUCT_ID',
'x-product-location': 'MY_LOCATION',
},
withCredentials: false,
dataType:'json',
processData: false,
}, (res) => {
// need to get x-request-id from response header here
const req = request;
if (res.statusCode >= 300) {
const myError = new Error(res.statusCode);
resolve(myError);
}
else {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => {
// Success!
try {
resolve(JSON.parse(data));
}
catch (e) {
resolve(data);
}
});
}
});
request.write(postData);
request.end();
});
}
}
答案 0 :(得分:0)
嘿,我不确定React App,通常您必须在响应标头中添加X-REQUEST-D
。例如,在烧瓶中,我执行以下操作。
from flask_log_request_id import current_request_id
headers = {
'X-REQUEST-ID' : current_request_id()
}
如代码所示,current_request_id()返回当前的X-REQUEST-ID,该ID可以传递给respone标头。
如何获取x-request-id以显示在响应中 标头?
您应该在REACT中搜索类似于current_request_id()的模块,该模块可以为您返回当前的X-REQUEST-ID,并将其附加到标题中。
答案 1 :(得分:0)
我想您必须从快速服务器发送x-request-id
作为响应标头。
该库为请求生成UUID,并将其添加到X-Request-Id标头中。如果请求包含X-Request-Id标头,请改用其值。
您可以在此用例中使用npm模块express-request-id
。
var app = require('express')();
var addRequestId = require('express-request-id')();
app.use(addRequestId);
app.get('/', function (req, res, next) {
res.send(req.id);
next();
});
app.listen(3000, function() {
console.log('Listening on port %d', server.address().port);
});
希望有帮助!