2016-09-12 43 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, {}) 
相关问题