将GET响应传递给POST

时间:2014-11-28 13:56:57

标签: javascript json angularjs post get

我正在尝试将依赖于所选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响应并成功导出?

3 个答案:

答案 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)

是的,它有效。毕竟我只需要肯定。我测试了它,它的工作原理。谢谢那些回答。