如何发布包含$ http地图的urlencoded表单数据?

时间:2017-10-18 07:54:12

标签: javascript angularjs jax-rs

我正尝试在urlencoded表单数据的帮助下通过Rest调用将数据从UI发送到Server。 我必须将字符串和Map作为表单数据的一部分传递。 我能够传递字符串值,但不能传递地图值。

以下是我正在使用的代码

customContent : function(content, contentPath, keyPath, keyValueMap){
                       console.log(keyValueMap);
                       var data = {
                             customContentId: ecpmServices.currentCustomContentId,
                             customContent: content,
                             customContentPath: contentPath,
                             keyPath: keyPath,
                             keyValueMap: keyValueMap
                       };
                       return $http({
                            url : '/ws/cpm/customContent',
                            method : 'POST',
                            data : data ,
                            headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                            transformRequest: function(obj) {
                                var str = [];
                                for(var p in obj)
                                {
                                    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                                }
                                return str.join("&");
                            }}).then(function(res){
                                   var response = res.data;
                                   if(response.activeCustomContentId === 0) {
                                         //Some operation
                                         });
                                   }
                                });
                  }

在上面的代码中,keyValueMap实际上是Map,剩下的就是字符串。 如果我在fiddler中看到上面的rest调用keyValueMap为null。 有关如何传递地图数据的任何建议。

1 个答案:

答案 0 :(得分:0)

据我所知,你的脚本一切都可以。我甚至把它放进了一个Plunker进行测试:

http://plnkr.co/edit/cFU80HY9pF72YQ3ouXNN?p=preview

#1
m1 <- do.call(rbind, lapply(myDataFrames, function(y) do.call(rbind, y)))
relist(m1, skeleton = myDataFrames)

#2
relist(matrix(unlist(myDataFrames), ncol = 4, byrow = T), skeleton = myDataFrames)

#3
library(data.table)

df<-rbindlist(myDataFrames, idcol = "index")
df<-rbindlist(myDataFrames, fill=TRUE)

#4 
myDataFrame <- do.call(rbind.data.frame, c(myDataFrames, list(stringsAsFactors = FALSE)))

它按预期工作。我最好的猜测是,在调用函数时,变量keyValueMap为空。所以这可能是一个时间问题 - 如果没有剩下的代码就很难说。