正在读取angularjs中的HTTP服务器标头响应消息
Reading HTTP server header response messages in angularjs
我以以下方式向服务器发出Ajax请求:
应用程序设置:
var appRoot = angular.module('demoApp', ['ngRoute', 'ngResource']);
appRoot.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/', { templateUrl: '/ngPartials/_Login.html', controller: 'LoginCtrl' })
.otherwise({ redirectTo: '/ngPartials/_Login.html', controller: 'LoginCtrl' });
}
]);
工厂:
appRoot.factory('LoginResource', function ($resource) {
return $resource('/Login/Login');
});
控制器:
appRoot.controller('LoginCtrl', function ($scope, LoginResource) {
//Make a get request on login resource
$scope.User = LoginResource.get(
{
Role: val,
Email_Id: $scope.Email,
Pwd: $scope.Password
}, function (response) {
//do someting in callback function
});
});
现在,每当我从控制器发出Ajax请求时,我都希望读取从服务器返回的http头消息,并根据消息继续操作。
在本文中,它展示了如何读取从服务器返回的头消息。但在我的案例中,我对如何阅读标题感到困惑。
编辑:如果用$resource无法实现这一点,而只能用$http实现,那么需要在工厂中进行哪些更改,这样我就不需要更改来自控制器的调用了?更改控制器中的所有REST请求对我来说将是昂贵的,因为我需要在整个项目中实现更改。
我试着在我的工厂里做以下的改变,这样我就可以按照Michal的建议阅读标题了。ajax请求完成得很好,我的服务器登录方法也正确,但我通过angular$http请求发送的参数没有绑定到我的服务器登陆操作方法模型:
appRoot.factory('LoginResource', function ($resource, $http) {
var loginResource = {
response:{},
get: function (param) {
$http.get('/Login/Login', param).
success(function (data, status, headers, config) {
this.response = data;
}).
error(function (data, status, headers, config) {
alert('error');
});
}
}
return loginResource;
});
服务器端型号:
public class LoginModel
{
public string Role { get; set; }
public string Email_Id { get; set; }
public string Pwd { get; set; }
public bool IsEmailValidation { get; set; }
}
动作方式:
public JsonResult Login(LoginModel oLogin)
{
...
}
我做错了什么?
您不能用$resource来实现这一点,它只提供高级API,读取http请求需要$http。
成功回调函数在返回中有第二个参数
以下是角度文档的摘录:
使用(value,responseHeaders)参数调用成功回调。使用(httpResponse)参数调用错误回调。
链接:Angular$Resource
因此,在回调中,您可以获得这样的响应标头:
appRoot.controller('LoginCtrl', function ($scope, LoginResource) {
//Make a get request on login resource
$scope.User = LoginResource.get(
{
Role: val,
Email_Id: $scope.Email,
Pwd: $scope.Password
}, function (response,responseHeader) {
var headers = responseHeader();
//do someting in callback function
});
});
headers对象包含从服务器端返回的headers
相关文章:
- Javascript-如果用户没有响应,则关闭确认消息
- 尝试从对象打印出响应消息
- 为什么我的附加组件面板的内容脚本在更改 contentURL 后不再响应端口消息
- 使用官方 Node.js SendGrid API 发送电子邮件时,响应 JSON 中可能出现哪些错误消息
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 正在读取angularjs中的HTTP服务器标头响应消息
- 基于NodeJS响应,使用Ajax在浏览器中发出警报消息
- Chrome扩展消息传递:未发送响应
- 避免“;无响应脚本"foreach循环中的消息
- 检查 http 响应代码以显示相应的失败消息
- 当 AJAX 响应成功时清除 jquery 成功/错误消息 span 类
- JSON 响应打印 HTML 而不是消息
- 如何停止 PHP 脚本的响应消息显示为页面的唯一内容
- AJAX 响应消息唯一标识符
- Jquery Ajax成功事件和接收响应消息时出错
- 使用jQuery mysql_affected_rows()正确地响应消息
- HTML5 Web Worker不响应消息
- NodeJS - Nodemailer无法响应.消息发送时的Json
- 在Android应用程序中运行HTML5网站-没有响应消息
- "意外的输入结束“;从简单POST请求到node.js的响应消息