Javascript 使用Hapi.js和Angularjs登录
让我看看我能不能得到这个 我在后端/hapijs/node端有这个Javascript 使用Hapi.js和Angularjs登录,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,让我看看我能不能得到这个 我在后端/hapijs/node端有这个 server.route({ method: 'POST', path: '/login', handler: function(request, reply) { USER: request.payload.user, PWD: request.payload.password, PLANTA: request.payload.planta, PLANGROUP: request.p
server.route({
method: 'POST',
path: '/login',
handler: function(request, reply) {
USER: request.payload.user,
PWD: request.payload.password,
PLANTA: request.payload.planta,
PLANGROUP: request.payload.plantgroup,
START_DATE: request.payload.startDate
}
});
这里是前端
.factory('LoginService', function($http, $q) {
var defer = $q.defer();
return {
login: function(params) {
$http.post('http://localhost:8000/login', {
user: 'USRCP_HW',
password: 'usrcp2012',
planta: '6000',
plantroup: 'E10',
startDate: '2014-11-26'
}).success(function(data) {
console.log(data);
}).error(function(data, status){
console.log(data, status);
defer.reject(data);
});
return defer.promise;
}
}
});
还有控制器,我很困惑
.controller('LoginCtrl', function($rootScope, $scope, $stateParams, LoginService) {
$scope.login = function() {
LoginService.login($scope.params).then(function(params) {
console.log('credentials', $scope.params, params);
})
};
});
我在控制台中发现两个错误:
选项501(不支持的方法(“选项”))
及
无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为501
那么,我在这里遗漏了什么呢?嗯,您的hapi路由是无效的JavaScript,所以我不确定它将如何运行。您正在使用request.payload正确获取有效负载值。您需要将其更改为以下内容:
server.route({
method: 'POST',
path: '/login',
handler: function(request, reply) {
var user = {
USER: request.payload.user,
PWD: request.payload.password,
PLANTA: request.payload.planta,
PLANGROUP: request.payload.plantgroup,
START_DATE: request.payload.startDate
};
// do something with user object here
});
选项方法问题是因为Angular正在尝试执行CORS。只需将POST路径设置为相对路径,它就可以正确解析到您的服务器
$http.post('/login', {
user: 'USRCP_HW',
password: 'usrcp2012',
planta: '6000',
plantroup: 'E10',
startDate: '2014-11-26'
})
您需要让您的hapi服务器也为这些有角度的内容提供服务,而不是从您的文件系统打开它
希望这有帮助 嗯,您的hapi路由是无效的JavaScript,所以我不确定它将如何运行。您正在使用request.payload正确获取有效负载值。您需要将其更改为以下内容:
server.route({
method: 'POST',
path: '/login',
handler: function(request, reply) {
var user = {
USER: request.payload.user,
PWD: request.payload.password,
PLANTA: request.payload.planta,
PLANGROUP: request.payload.plantgroup,
START_DATE: request.payload.startDate
};
// do something with user object here
});
选项方法问题是因为Angular正在尝试执行CORS。只需将POST路径设置为相对路径,它就可以正确解析到您的服务器
$http.post('/login', {
user: 'USRCP_HW',
password: 'usrcp2012',
planta: '6000',
plantroup: 'E10',
startDate: '2014-11-26'
})
您需要让您的hapi服务器也为这些有角度的内容提供服务,而不是从您的文件系统打开它
希望这有帮助