我有服务器A和服务器B.客户端从服务器A请求文件,服务器A从服务器B获取文件。 当客户端请求存在的文件时,这可以正常工作,但客户端在请求不存在的文件时收到错误的http状态消息。
问题:
当客户端应为“404 Not Found”时,客户端会在状态行中收到“404 OK”。无论我发送什么状态码,状态消息总是“OK”,但客户端总是收到我设置的状态码(301,402等)。 此外,服务器A确实收到正确的状态消息,无论出于何种原因,服务器A似乎传播状态代码,但不传播消息。
服务器代码:
import request from 'request'
context.response.body = request( my_url );
//request( my_url, (error, response, body) =>
//{
// console.log( "message: " + response.statusMessage ); //prints 'Not Found'
//});
服务器B代码:
context.response.status = 404;
context.response.message = 'Not Found';
context.response.body = 'Page not found';
我做错了什么?
修改
我找到了一个“解决方案”,但我希望有一个更好的解决方案。 在服务器A中,我将代码更改为:
let stream = request( my_url );
stream.on( 'response', function( response )
{
context.response.message = response.statusMessage;
});
contest.response.body = stream;
我不能说我对此很满意,因为状态代码被传播而不是消息似乎很愚蠢。