• 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;
    

      

  • 相关阅读:
    C# 多线程编程及其几种方式
    多态有几种表现形式
    闭包的理解
    C# 泛型类型约束 where
    HTML扩展--HTMLTestRuner HTML测试报告
    编写web自动化测试
    unittest单元测试框架之认识unittest
    自动化测试模型
    处理HTML5视频播放、滑动解锁
    操作Cookie调用JavaScript
  • 原文地址:https://www.cnblogs.com/lengyue0030/p/6489960.html
Copyright © 2020-2023  润新知