我正在使用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休息控制器?
如果您需要任何其他信息,请告诉我,我会提供。提前谢谢!
答案 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对象。