我正在将数据从controller.js传递到service.js到SpringController.java
但是当我将$ scope.credentials.uname数据传递给Java Controller时,发生了奇怪的事情。
传递的数据用双引号引起来。当我用Java打印值时 它被打印为“ USER”而不是USER。
也由于这个原因,我无法将用户名保存在数据库中。
spring.datasource.hikari.leakDetectionThreshold=2000
logging.level.com.zaxxer.hikari=DEBUG
此处日志已在Chrome控制台上正确打印
用户名SYS_USER->不带双引号
$scope.submitUsername = function()
{
$log.info("username "+$scope.credentials.uname);
service.js
loginService.fetchUserType(angular.copy($scope.credentials.uname)).then(function(data)
{
if (data.loginType == 'NotValidUsername')
{
$log.info("Failure")
toaster.pop('information', "Warning", 'Enter Valid UserName');
}
else
{
$log.info("Success")
if (data.loginType == 'database')
{
$scope.isExternalUser = true;
$scope.showSubmitButton = false;
}
else
{
$scope.isExternalUser = false;
$scope.showSubmitButton = false;
}
}
})
};
Java控制器方法
fetchUserType : function(userName)
{
var promise = $http({
url : "checkUserType.do",
method : "POST",
data : JSON.stringify(userName)
}).success(function(data, status, header, config, statusText)
{
}).error(function(data, status, header, config, statusText)
{
if(!status === 901)
toaster.pop('error', status, statusText);
}).then(function(response)
{
return response.data;
})
return promise;
}
控制台上的输出为
内部checkUserType为“ SYS_USER”。
我应该如何传递数据,以便避免将这些“”(双引号)传递给Java Controller
答案 0 :(得分:0)
从您的service.js中删除JSON.stringify(userName)
这就是在您的请求周围添加双引号的过程。
您的data
应该只是data: userName
。当它发送到您的控制器时,它将被正确转换为json以供您的控制器消化。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify