数据未传递给api调用

时间:2016-09-12 15:03:08

标签: javascript php angularjs codeigniter

我正在使用AngularJs(1.5)和Codeigniter rest服务器处理一个项目。我想知道为什么数据idTag没有传递给php?让我告诉你我的代码并进一步解释评论。

我有这个工厂

public function locationtag_get($idLocation)
{
    $condition['id_location'] = $idLocation;
    $condition['id_tag'] = $this->get('idTag');
    var_dump($condition);
    die();
    $locationTag = $this->locations_tags->get($condition);
    if ($locationTag) {
        $this->response($locationTag, REST_Controller::HTTP_OK);
    }
}

这是我的PHP,我尝试获取代码

 'id_location' '1'
 'id_tag' null

var_dump的输出是

{{1}}

那么问题,为什么或如何从GET方法正确地将数据发送到Codeigniter中的PHP休息控制器?

如果您需要任何其他信息,请告诉我,我会提供。提前谢谢!

2 个答案:

答案 0 :(得分:1)

您应该在$ http配置对象中使用params属性:

$http({
    url: $location.protocol() + '://' + $location.host() + '/rest/api/locationtag/locationtag/' + idLocation,
        data: {, 
    method: "GET",
    params: {idTag: idTag}
 });

这将作为查询字符串附加到您的url,然后您可以在服务器端代码中进行检查。

答案 1 :(得分:1)

对于GET请求,您应该使用params而不是data(用于POST请求)。您可以在AngularJS documentation中确认这一点。

  

params - {Object。} - 字符串或对象的映射   将使用paramSerializer序列化并作为GET附加   参数。

当然,没有什么可以阻止您将它们添加到URL中,但是您必须正确处理信息编码而不是仅传递JSON对象。