POST w/Params返回400错误
POST w/ Params returns 400 Error
试图在springmvc:中发送对此方法的后响应
@RestController
public class LoginRController {
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login_Post(@RequestParam(value = "user", required = true) String username, @RequestParam(value = "pass", required = true) String password) {
return ("Login: "+username+", "+password);
}
}
所以我最初尝试了:
控制器
App.controller('LoginController', [
'$scope',
'LoginService',
function($scope, LoginService) {
var self = this;
self.authUser = function() {
LoginService.authUser($('#inputEmail').val(),
$('#inputPassword').val()).then(function(d) {
console.log("This happened");
}, function(errResponse) {
console.error('Error while fetching Currencies');
});
};
} ]);
服务
App.factory('LoginService', [
'$http',
'$q',
function($http, $q) {
return {
authUser : function(username, password) {
return $http.post(
'login',
"user=" + encodeURIComponent(username) + "&pass="
+ encodeURIComponent(password)).then(
function(response) {
return response.data;
}, function(errResponse) {
console.error('Error @ authUser');
return $q.reject(errResponse);
})
}
}
} ]);
我发现它总是返回一个400错误,这意味着所需的字段不匹配。。。这很奇怪,因为我可以很好地使用Jquery$post()。
此外,我在这个线程上尝试了这里的一切,AngularJs$http.post()不发送数据,以及我如何在AngularJs中用$http发布URL编码的表单数据?
也尝试过:
'use strict';
App.factory('LoginService', [ '$http', '$q', function($http, $q) {
return {
authUser : function(username, password) {
return $http.post('login', {
params : {
user : username,
pass : password
}
}, {
headers : {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(response) {
return response.data;
}, function(errResponse) {
console.error('Error @ authUser');
return $q.reject(errResponse);
})
}
}
} ]);
使用上一个示例作为基线,您需要:1)删除params
和2)对数据进行url编码(此处使用jQuery $.param()
):
return {
authUser: function(username, password) {
return $http.post('login', $.param({
user: username,
pass: password
}), {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(response) {
return response.data;
}, function(errResponse) {
console.error('Error @ authUser');
return $q.reject(errResponse);
})
}
}
这一切都在这里解释。
相关文章:
- CKFinder 3为所选文件返回错误的URL
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 用于查询错误转换的角度资源返回列表
- 如何解决“;错误所请求的URL返回500-内部服务器错误”;
- WebView返回错误的window.innerHeight
- Javascript表单验证:表单在错误返回时提交:
- 谷歌地图上的常量错误返回maxZoomService.getMaxZoomAtLatLng()
- Jquery .ajax POST 函数错误返回 asp.net MVC.
- happy 不会从 Boom 错误返回数据属性
- 操作结果在 ajax 调用中作为错误返回
- 我得到了错误“返回绑定”.PBKDF2(密码、盐、迭代、keylen、回调);^ TypeError: Not a bu
- 节点解析错误:返回时意外的令牌
- Bluebird承诺库的结果作为错误返回
- Jquery, php ajax post 500内部服务器错误返回
- 未定义的索引问题和错误返回
- 未从json文件中导入数据:Unhandled rejection错误返回
- Jquery错误返回bool值
- 表单提交后重新加载页面,尽管没有验证和错误返回
- 使用POST方法的AJAX函数会创建以下错误.错误:返回状态码414请求uri太大