2017-01-24 1 views
0

이것은 내 첫 번째 질문으로, 내 영어 실례입니다.http.get with params send word query

저는 각도로 작업하고 있으며 http.post를 모두 사용하고 있습니다 (get 및 post 정보). 그리고 이것이 어떻게 잘못된지, 나는 데이터베이스에서 레코드를 요청하기 위해 http.get을 사용하기 시작할 것입니다.

내가 이것을 사용하고이를 보낼 수 있기 때문에,

empresa.php?id=-1&action=get 

그러나 작동하지를 :

$http.get("empresa.php",{params:{id:-1,action:"get"}}) 

내가 이런 식으로 뭔가를받을 것으로 예상

empresa.php?query=%7B%22id%22:-1,%22action%22:%22get%22%7D 

당신이 나를 도울 수 ?

쿼리이 아닙니다. POST에 대한

app.factory("Data", ['$http', 
    function($http,) { // This service connects to our REST API 

     var serviceBase = 'service/'; 

     var obj = {}; 

     obj.get = function(q,p) { 
      console.log(p); 
      return $http.get(serviceBase + q + ".php",{params:p}).then(function (results) { 
       return results.data; 
      }); 
     }; 
     obj.post = function(q, object) { 
      return $http.post(serviceBase + q + ".php", object).then(function(results) { 
       return results.data; 
      }); 
     }; 
     obj.put = function(q, object) { 
      return $http.put(serviceBase + q + ".php", object).then(function(results) { 
       return results.data; 
      }); 
     }; 
     obj.delete = function(q) { 
      return $http.delete(serviceBase + q + ".php").then(function(results) { 
       return results.data; 
      }); 
     }; 

     return obj; 
    } 
]); 

잘 작동하지만, GET 작동하지 않습니다 :(

: 나는 EDITION 테 공장이있다 AngularJS와 1.5.8

을 사용하고

새 편집

Here you can see how is that I have the code, how use and the response

편집 - 말

을 확정, 나는 JSON 객체를 직렬화하고 도움을 모든 empresa.php에 전화에 직접

감사를 넣어 $ httpParamSerializer를 사용하여 해결! !! !!

+0

그렇다면 문자를 백분율 인코딩으로 변환하지 않고 get 쿼리를 보내는 방법을 알고 싶습니까? – ncke

+0

예, 그렇게하고 싶습니다. @ncke – DanielB

답변

0

$ http.get 바로 가기 방법을 사용하지 마십시오.

$http({ 
    url: "empresa.php", 
    method: "GET", 
    params: {id:-1, action:"get"} 
}); 

아니면 당신은 URL을 직접 만들 수 있습니다.

$http.get('empresa.php?id=' + -1 + '&action=' + 'get'); 
+0

답변을 주셔서 감사합니다, 큰,하지만 여전히 작동하지에 대한 shorcut 방법을 변경합니다. 마지막에는 쿼리 문자열에 "manual"매개 변수를 넣어 작업했습니다. – DanielB

+0

하지만 왜 다른 프로젝트에서 잘 작동하는지 모르겠습니다. 그것은 동일한 서버입니다. http.get에 대한 호출은 두 프로젝트에서 모두 출고됩니다. – DanielB

1

URL 쿼리를 작성하려면 $httpParamSerializer을 사용하십시오.

var params = {id:-1,action:"get"}; 
var query = $httpParamSerializer(params); 
$http.get("empresa.php?" + query); 
+0

답변 해 주셔서 감사합니다. http.get은 모든 프로젝트에서 사용하기 위해 공장에 있으며 $ httpParamSerializer를 사용하는 방법을 모르겠다. – DanielB

+0

@DanielB, 공장에있는 코드를 넣을 수 있다면 도움을 줄 수있다. –

+0

코드가있다. 공장. – DanielB