gpt4 book ai didi

javascript - POST w/Params 返回 400 错误

转载 作者:行者123 更新时间:2023-12-03 08:05:01 25 4
gpt4 key购买 nike

尝试在 spring mvc 中向此方法发送发布响应:

@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);
}
}

所以我最初尝试过:

Controller

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() does not send dataHow do I POST urlencoded form data with $http in AngularJS?

还尝试过:

'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) 对数据进行 urlencode(此处使用 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);
})
}
}

一切都解释清楚了here .

关于javascript - POST w/Params 返回 400 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com