$ http get 매개 변수가 작동하지 않습니다.


93

왜 이것이 작동하지 않는지 아는 사람이 있습니까?

$http
    .get('accept.php', {
        source: link,
        category_id: category
    })
    .success(function (data, status) {
        $scope.info_show = data
    });

그리고 이것은 작동합니다.

$http
    .get('accept.php?source=' + link + '&category_id=' + category)
    .success(function (data, status) {
        $scope.info_show = data
    });

답변:


191

get호출 의 두 번째 매개 변수 는 구성 객체입니다. 다음과 같은 것을 원합니다.

$http
    .get('accept.php', {
        params: {
            source: link,
            category_id: category
        }
     })
     .success(function (data,status) {
          $scope.info_show = data
     });

참고 항목 인수 의 부분 http://docs.angularjs.org/api/ng.$http을 자세히위한


params위와 같이 사용 하면 .NET을 사용하지 않는 GET 요청 문제도 해결됩니다 data. AngularJS는 jQuery가 수행하는 것처럼이를 자체적으로 정렬하지 않습니다. (나는 그것이 좋거나 나쁜 것이라고 생각하지 않고 단지 다르며 사람들을 넘어 뜨릴 수 있습니다).
DanielM

params 개체 내부의 키 값 속성에 대해 정의되지 않았습니다. 이것은 서비스에서 달라야합니까?
Winnemucca

2
또한 params개체가 비어 있거나 모든 속성이 null또는 undefined인 경우 쿼리 문자열에 아무것도 추가되지 않습니다.
nfang

3

에서 $http.get문서 , 두 번째 파라미터는 구성 목적은 :

get(url, [config]);

GET요청 을 수행하기위한 바로 가기 방법 .

코드를 다음과 같이 변경할 수 있습니다.

$http.get('accept.php', {
    params: {
        source: link, 
        category_id: category
    }
});

또는:

$http({
    url: 'accept.php', 
    method: 'GET',
    params: { 
        source: link, 
        category_id: category
    }
});

참고로 Angular 1.6 : .success 더 이상 사용하면 .then안되므로 대신 사용하십시오.

$http.get('/url', config).then(successCallback, errorCallback);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.