您的位置:首页 > 理论基础 > 计算机网络

修改angular post提交json数据的格式_ $httpProvider配置

2016-08-04 18:20 555 查看
修改angular post提交默认格式是json数据的格式,我们如果想用$_Post接收数据的话,那么就得配置$httpProvider

$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';

.config(['$httpProvider',

          function ($httpProvider) {

              // Use x-www-form-urlencoded Content-Type

              $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

              $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';

              // Override $http service's default transformRequest

              $httpProvider.defaults.transformRequest = [function(data)

              {

                  /**

                   * The workhorse; converts an object to x-www-form-urlencoded serialization.

                   * @param {Object} obj

                   * @return {String}

                   */

                  var param = function(obj)

                  {

                      var query = '';

                      var name, value, fullSubName, subName, subValue, innerObj, i;

                      console.log(obj);

                      for(name in obj)

                      {

                          value = obj[name];

                          console.log(value);

                          if(value instanceof Array)

                          {

                              console.log("Array");

                              for(i=0; i<value.length; ++i)

                              {

                                  subValue = value[i];

                                  fullSubName = name + '[' + i + ']';

                                  innerObj = {};

                                  innerObj[fullSubName] = subValue;

                                  query += param(innerObj) + '&';

                              }

                          }

                          else if(value instanceof Object)

                          {

                               console.log("object");

                              for(subName in value)

                              {

                                  subValue = value[subName];

                                  if(subValue != null){

                                      // fullSubName = name + '[' + subName + ']';

                                      //user.userName = hmm & user.userPassword = 111

                                      fullSubName = name + '.' + subName;

                                      // fullSubName =  subName;

                                      innerObj = {};

                                      innerObj[fullSubName] = subValue;

                                      query += param(innerObj) + '&';

                                  }

                              }

                          }

                          else if(value !== undefined ) //&& value !== null

                          {

                              console.log("undefined");

                              query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';

                          }

                      }

                      return query.length ? query.substr(0, query.length - 1) : query;

                  };

                  return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;

              }]

              $httpProvider.defaults.useXDomain = true;

              // delete $httpProvider.defaults.headers.common['X-Requested-With'];

          }])

复制代码

参考:http://blog.sina.com.cn/s/blog_5be1dc830101k2ds.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐