reqData({
url: url,
body: req.query.data, //这里是json字符串
timeout: timeout,
method: method,
headers: {
"content-type": "application/json; charset=utf-8"
}
}, function(err, data) {
if(!err) {
res.write(JSON.stringify(data));
res.flush();
res.end();
} else {
var result = {
flag:1,
msg:'未找到符合条件的结果'
}
res.end(JSON.stringify(result));
}
});
function reqData(options, callback) {
logger.info('request options:', options);
request(options, function(err, response, body) {
if(err) {
logger.error("Error:" + err.message +"\n" + err.stack + "\n", 'request & response body:', options, body);
callback(err);
} else {
try {
callback(null, JSON.parse(body));
} catch(err) {
logger.error("Error:" + err.message +"\n" + err.stack + "\n", 'request & response body:', options, body);
callback(err);
}
}
});
}
node日志一直再报error,并且 错误码400,但是后端实际上没有收到我的请求,不知道是哪里的原因
一种情况是后端使用了代理服务器,你的请求host有没有修改成接口地址的hostname?如果还是你的浏览器地址的话,可能被代理服务器拦截了。
第二种是post请求的时候,服务器会判断header的content-length是否跟你的data的length一致,如果不一致,直接会被断掉,因为这是一次错误的请求