2016-09-12 74 views
1

我正在使用AngularJs(1.5)和Codeigniter其餘服務器處理一個項目。我想知道爲什麼數據標籤不傳遞給PHP?讓我告訴你我的代碼,並進一步解釋評論。數據未通過post方法傳遞給api調用

factory.insert = function(tag){ 
     console.log(tag); //out put present, so problem is in http request 
     return $http({ 
      method: 'POST', 
      url: $location.protocol() + '://' + $location.host() + '/rest/api/tag/tag/', 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
      data: { 
       tag: tag 
      } 
     }).then(function successCallback(response) { 
      return response.data; 
     }, function errorCallback(response) { 
      console.log('Can\'t insert tag: ' + response.data.message); 
     }); 
    }; 

PHP

public function tag_post() 
{ 
    $condition['tag'] = $this->post('tag'); 
    var_dump($condition); 
} 

var_dump $condition['tag']是 '標籤' null

UPDATE

工廠零錢解決我的問題。現在我的數據看起來像這樣,它的工作原理。爲什麼?如果我使用CakePHP或笨工作

data: $.param({ 
    tag: tag 
}) 

更新2

同樣的事情發生。所以我想這不是一個PHP方面的問題

+0

如果'tag'爲對象,所以把它作爲'數據:返回成功之前tag' –

+0

的翻譯:發生,所以請求進入低谷,但數據庫中的值爲NULL。 var的標籤類型是字符串 –

+0

與'headers:{'Content-Type':'multipart/form-data'}'相同嗎? – TGrif

回答

0

數據總是需要用$ .param函數設置,當你在Angular中發佈請求時,所以params是「準備/添加」的。

data: $.param({ 
    tag: tag 
}) 

例如在VueJs你會做這樣的事情

let params = new URLSearchParams(); 
params.append('firstName', this.name); 
this.$http.post(this.$apiUrl + `rest/api/User/User/` + id_user, params, {}) 
相關問題