2014-10-07 71 views
2

我希望角度專家能夠指引我朝着正確的方向發展。當使用以下格式工廠,我怎麼修改POST頭,因此:AngularJS,如何正確修改工廠中的http頭文件

'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'? 

代碼:

var tableModule = angular.module('theApp', ['ui-rangeSlider','ngScrollbar']); 

tableModule.factory('Services', ['$http', 
function($http) { 
    return { 
     get : function($path, callback) { 
      return $http.get($path).success(callback);  
     }, 
     post : function($path, $data, callback) { 
      return $http.post($path, $data).success(callback); 
     } 
    }; 
}]); 

回答

2

爲什麼不能簡單地用第三配置參數$http.post ...

post: function(path, data) { 
    return $http.post(path, data, { 
     headers: { 
      'Content-type': 'application/x-www-form-urlencoded' 
     } 
    }); 
} 
+0

你爲什麼要刪除回調? – nodoze 2014-10-07 02:58:26

+0

@nodoze只是習慣。我更喜歡使用承諾對象本身。我的答案的主要觀點是向你展示如何傳遞標題 – Phil 2014-10-07 03:29:02

+1

,我認爲這有竅門,謝謝菲爾。它沒有解決我的大問題,但它似乎通過了頭。我的大角度問題在這裏:http://stackoverflow.com/questions/26226519/accessing-post-data-in-python-with-cgi-fieldstorage-using-angularjs – nodoze 2014-10-07 03:47:46

2

我想這樣的事情早。該方法看起來像

$scope.update = function (user) { 
     $http({ 
      method: 'POST', 
      url: 'https://mytestserver.com/that/does/not/exists', 
      headers: { 
       'Content-Type': 'application/x-www-form-urlencoded' 
      }, 
      transformRequest: function (data) { 
       var postData = []; 
       for (var prop in data) 
       postData.push(encodeURIComponent(prop) + "=" + encodeURIComponent(data[prop])); 
       return postData.join("&"); 
      }, 
      data: user 
     }); 
    } 

也看到我的小提琴http://jsfiddle.net/cmyworld/doLhmgL6/