• angularjs 请求数据转换为Form Data传参


    在angularjs中配置好服务,有时传参会导致后台借不到值或者后台直接报错;

      这就与后台框架有关,如果后台是以public ModelAndView接收接口传过来的参数,这种情况,前台传参的形式比较随意一些,但是后台需要对逐个参数进行判断取值,这个比较麻烦,这是后台框架的原因;

      如果后台是以public Object 接收接口传来的参数,这种框架只允许前端传参形式只允许以Form Data的形式传入;前端传参形式不是Form Data,这就需要手动转化

    解决一:在配置service处加参数

    method: 'post',
                        url: rootPath.contextPath() + "接口名称",
                        data: params,
                        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("&");
                        }
    

      解决二:这个方法比较麻烦,就是在配置文件provider中添加方法

               var qs = '';
                        angular.forEach(params, function (value, key) {
                            if (value == null)
                                return;
                            if (qs.length > 0)
                                qs += '&';
                             qs += (encodeURIComponent(key) + '=' + encodeURIComponent(value));
                             if(encodeURIComponent(key) == "lang"){
                            	 $rootScope.lang = encodeURIComponent(value);
                             }
                        });
                        qs += "&lang="+$rootScope.lang;
    

      

  • 相关阅读:
    JVM启动参数小结
    Java 线程池学习
    myeclipse 8.5安装freemarker插件方法
    开源文件比较工具:WinMerge、KDiff3、diffuse
    初探淘宝技术构架
    Java获取IP地址:request.getRemoteAddr()注意
    Spring MVC 教程,快速入门,深入分析
    分布式服务框架 Zookeeper -- 管理分布式环境中的数据
    YARN作业提交流程剖析
    经典的MapReduce1解析
  • 原文地址:https://www.cnblogs.com/lengyue0030/p/6489960.html
Copyright © 2020-2023  润新知