2016-09-12 7 views
0

私はAngularJs(1.5)とCodeigniter rest serverを使って1つのプロジェクトに取り組んでいます。私はなぜデータidTagがPHPに渡されていないのだろうか?私のコードを見せて、コメントをつけて説明しましょう。データはAPIコールに渡されません

、私はこの工場に

factory.get = function(idLocation, idTag){ 
    console.log(idLocation, idTag); //Console log outputs 1 6, so data is here 

    return $http({ 
     method: 'GET', 
     url: $location.protocol() + '://' + $location.host() + '/rest/api/locationtag/locationtag/' + idLocation, 
     data: { 
      idTag: idTag 
     } 
    }).then(function successCallback(response){ 
     console.log(response); 
     // response is empty, because data isn't sent to PHP 
     return response.data; 
    },function errorCallback(response){ 
     console.log('Error getting slide shows: ' + response.data.message); 
    }); 
}; 

を持っており、これは私がコードのvar_dumpのプットアウト

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はSO質問

'id_location' '1' 
'id_tag' null 

ですCodeigniterのGETメソッドからPHP Restコントローラにデータを適切に送信する理由または方法

追加情報が必要な場合は、お知らせください。前もって感謝します!

答えて

1

GETリクエストの場合、data(POST要求の場合)の代わりにparamsを使用する必要があります。これはAngularJS documentationで確認できます。

のparams - {オブジェクト} - はparamSerializerでシリアライズし、GET パラメータとして追加される文字列またはオブジェクトのマップ。

もちろん、URLに追加することはできませんが、JSONオブジェクトを渡すのではなく、情報を正しくエンコードする必要があります。

1

あなたは$ HTTP設定オブジェクトにparamsプロパティを使用する必要があります。

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

これは、あなたが、あなたのサーバー側のコードで調べることができ、URLあなたにクエリ文字列として追加します。

関連する問題