我在Azure网站上运行NodeJS网站。
其中一个方法将http错误状态代码返回给客户端,在这种情况下,它还会将数据作为错误消息的一部分发送。以下是有问题的代码:
if(error){
var user = new user_model.User();
user.getUserId(userName, function(err, result){
res.status(error).send(result);
});
}
如您所见,服务器将返回“#”状态'对客户端,以及它的一些数据。
在我的开发环境中运行此代码非常有效,并且在发生错误时将数据传递给客户端。但是,当我将代码部署到Azure时,send(result)
的数据被覆盖,而我得到的是默认错误消息。
例如,在我的开发环境中,如果我返回带有错误消息" ddsdf9"的httpStatus 401,我在客户端上的AJAX调用将看到该错误消息代码作为{{1}的一部分AJAX回调中的变量。
当我在Azure中重新编写错误时,AJAX调用从服务器收到的数据是"您无权查看此页面"。
我怀疑问题是在web.config的配置中,一些默认值是覆盖http错误状态代码上的错误消息。关于如何改变这种行为的任何建议?