我是(data,status,headers,config,statusText)使用$ http.post()在应用程序中进行服务器调用。服务器代码位于.net中。对于特定用例,当进程失败时,服务器将返回业务异常以及消息。
现在,我可以看到在Chrome控制台中以红色打印的消息以及404代码。此外,我可以在Fiddler的标题部分顶部看到消息,因为“HTTP / 1.1 404消息在这里”。但我不知道如何从响应头中提取该消息。
我尝试了以下内容,
$http.get(requestURL).success(
function (data,status,headers,config,statusText) {
//deferred.resolve(data);
console.log("In service",data,status,headers,config,statusText);
}).error(
function (data, status, headers, config, statusText) {
//deferred.reject(data);
console.log(data, status, headers, config, statusText);
});
标题作为函数打印在控制台中,“函数匿名(名称)”我需要帮助从中提取一些东西,(如果可能的话)。 statusText打印为undefined。我真的需要帮助,因为我需要向用户显示已发送的消息。
如果重要:邮件正在从服务器
的“reasonPhrase”属性中发送答案 0 :(得分:1)
首先,不推荐使用.success
和.error
方法。您应该使用.then
。
此页面提供了完整的详细信息 - https://docs.angularjs.org/api/ng/service/$http
在您的示例中,您应该使用以下内容:
$http.get(requestUrl).then(function (response) {
// success handling
console.log(response.headers());
}, function (response) {
// error handling
console.log(response.headers());
});
response.headers
是一个功能。当您调用它(var headers = response.headers();
)时,它将返回一个包含HTTP响应标头的对象。
根据上面链接的页面上的详细信息,您可以在响应对象中访问以下内容:
{string|Object}
- 使用转换函数转换的响应主体。{number}
- 响应的HTTP状态代码。{function([headerName])}
- 标题获取功能。{Object}
- 用于生成请求的配置对象。{string}
- 响应的HTTP状态文本。答案 1 :(得分:1)
我不知道你正在使用哪种版本的角度,但是传统的" success
和error
回调已被弃用了一段时间。
请考虑.then(...)
的新方法,请参阅此处:
https://docs.angularjs.org/api/ng/service/$http
但要回答你的问题:
回调函数中的headers
参数表示一个getter,因此您需要调用它:headers()
。您还可以在那里应用参数(特定标题)。