我正在尝试将依赖于所选id的多个数据映射传递给Excel方法。
我正在尝试使用AngularJS使用此代码将JSON数组从GET响应传递给POST:
$scope.exportExcel = function() {
var id='?';
angular.forEach($scope.selection, function(value, key) {
id = id + "id=" + value + '&';
});
$http.get(searchUrl + id).success(
function(response) {
$http.post(exportUrl, response);
}
)}
GET的响应将是一个看起来像这样的JSON数组(让我们说Jason和Fred都被选中):
response = [{'id':'Jason', 'number':1}, {'id':'Fred', 'number':2}]
我开发了Java代码,使得POST方法的输入应该与上面的数组类似。
我希望用户选择ID,按EXPORT按钮,立即获得下载对话框。没有其他屏幕更改或加载。
这可行吗?我的POST命令是否能够从GET接收JSONArray响应并成功导出?
答案 0 :(得分:0)
没有理由这不会起作用。完成GET
操作并调用其on-success
函数后,您的代码将处于一个全新的域中,POST
操作将正常运行(它不关心或知道数据来自)。
答案 1 :(得分:0)
快速尝试;试试这个(如果你不能使用它,我需要更多关于值的信息 - 我不知道你正在使用的库):
$scope.exportExcel = function() {
var id;
angular.forEach($scope.selection, function(value, key) {
id = (id?id+"&":"?")
+ "id["+key+"]=" + encodeURIComponent(value.id)
+ "&number["+key+"]=" + value.number;
});
$http.get(searchUrl + id).success(
function(response) {
$http.post(exportUrl, response);
}
)}
答案 2 :(得分:0)
是的,它有效。毕竟我只需要肯定。我测试了它,它的工作原理。谢谢那些回答。