$http.post发的数据,后台取不到

http://www.angularjs.cn/A0jl


我用$http.post(url, data). 后台用play框架,不知道为什么总是取不到data数据。如果直接用$.post(url, data); 就可以!


$http.post('Gulugulus/setMenu', {
                map: menu,
                test: 'test_lwp'
            }).success(function(){
                window.location.href = "Gulugulus/subMenu";
            });
后台Play的一个action:


public static void setMenu(Map map, String test) {
    System.out.println("test = " + test);
    menuMap = map;
}
打印出来,始终是null. 如果直接用$.post就可以正常打印出: test_lwp


$.post('Gulugulus/setMenu', {
            map: menu,
            test: 'test_lwp'
        });
支持 sleeplesswch_99ldc_ddc
反对
收藏 sleepless万德福wch_99ldc_ddc 3 4 0发表评论
评论:$http.post发的数据,后台取不到




[使用MarkDown语法,20 到 20480 字节,当前0字节]
编辑 / 预览提交


评论:…
giiwa 服务框架,提供一致的APIs: getString, getFile,自动封装不同请求对数据包装的不一致["GET", "POST", "multipart", file, application/json]
hello1 07-29 07:07发表0 0 0回复


评论:$http.post发的数据,后台取不到
http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/
小军 07-24 16:58发表0 0 0回复


评论:$http.post发的数据,后台取不到
太棒了,解决了我的问题。
野人 12-18 16:25发表0 0 0回复


评论:找到原因了:我的那个Play1.2的action中,期望得到的是params…
我以为采用摘星的方法会更好一些,毕竟采用上传文件的方式能传递的内容可以更多,而且直接json来,json去比较灵活,更符合angularjs的初衷,毕竟前后端交换一模型为媒介嘛。而且考虑到内容加密的话,可能更方便呢。
rodger 10-17 21:54发表0 0 0回复


评论:$http.post发的数据,后台取不到






angularjs基础教程 angularjs+ionic 移动app开发教程 免费视频教程来袭
百度网盘下载地址: http://pan.baidu.com/s/1sjlwRt7 密码: fy99


http://www.ionic.wang/start-index.html


论坛交流下载地址: http://bbs.phonegap100.com/thread-2047-1-1.html 






htzhanglong 08-30 22:10发表0 0 0回复


涩vvvvvv女:QQ2850071112
黄网:http://www.301se.com
馨馨 07-26 18:44发表0 0 0回复


评论:$http.post发的数据,后台取不到
$http.post 采用postJSON方式发送数据到后台, 解决办法:在php中使用 $postData=file_get_contents('php://input', true); 这样就可以获取到前端发来的数据
摘星 02-27 22:08发表3 0 0回复


评论:$http.post发的数据,后台取不到
$http.post 采用postJSON方式发送数据到后台, 解决办法:在php中使用 $postData=file_get_contents('php://input', true); 这样就可以获取到前端发来的数据
摘星 02-27 22:07发表0 0 0回复


评论:$http.post发的数据,后台取不到
最终完整的前端解决方案:
var url = 'Gulugulus/setMenu',
            data = {
                menu: JSON.stringify(menu),
                test: 'a String'
            },
            transFn = function(data) {
                return $.param(data);
            },
            postCfg = {
                headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
                transformRequest: transFn
            };


        $http.post(url, data, postCfg)
            .success(function(){
                window.location.href = "Gulugulus/subMenu";
            });
yidaoxiao 10-25 21:51发表0 1 0回复


评论:$http.post发的数据,后台取不到
找到原因了:我的那个Play1.2的action中,期望得到的是params的输入,而我传入的是JSON字符串,所以就NULL了。在Play2中,可以处理JSON请求。Play1.2我就不知道行不行了。 最终的解决方案:(把它转成类似$.post的请求)
var transform = function(data){
    return $.param(data);
}


$http.post("/foo/bar", requestData, {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
    transformRequest: transform
}).success(function(responseData) {
    //do stuff with response
});
引用自:AngularJS - Any way for $http.post to send request parameters instead of JSON?
yidaoxiao 10-25 00:30发表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值