【发布时间】:2020-05-22 22:08:47
【问题描述】:
我希望从 AngularJS 发送数据,以便稍后在 Python+Java 后端使用它。问题是它被发送为空,我不知道为什么。谷歌浏览器的控制台没有错误,但我可以在我的 java 服务器控制台(mvn -P dev)中看到问题,我使用 return 来查看到达时变量的值:
DEBUG 13496 --- [XNIO-23 task-27] acpsaop.logging.LoggingAspect:退出:us.com.generic.web.rest.DataController.getData() 结果 = 变量“null”已保存
Java 控制器,从 AngularJS 获取信息:
@RestController
@RequestMapping("/api")
public class DataController {
@RequestMapping("/data/")
@ResponseStatus(code = HttpStatus.OK)
public @ResponseBody String getData( @RequestParam(name="dataVariable", required=false) String dataVariable) {
return "The variable '" + dataVariable + "' was saved";
}
}
AngularJS 控制器:
angular
.module('Generic')
.controller('DataController', DataController);
DataController.$inject = ['$scope', '$http', 'URI', '$timeout'];
function DataController ($scope, $http, URI, $timeout) {
var myInformation = 'HeadStreet';
$http.post(URI + 'api/data/', {
dataVariable: myInformation
}, {
withCredentials: true,
headers: {
'Content-Type': 'charset=utf-8'
}
}).then(Success, Error);
}
function Success() {
alert('Variable sent');
}
function Error() {
alert('Issue while sending data');
}
}
【问题讨论】:
-
我对 Spring 一无所知,但您的代码似乎正在读取 GET 参数,而不是 POST 参数。作为快速检查,请尝试使用
URI + 'api/data/?dataVariable=HeadStreet'快速找出是否是问题所在。 (您还可以在浏览器控制台中检查您的请求在客户端发送的内容)
标签: javascript java angularjs