[jquery] jquery $ .ajax에서 각도 $ http로

교차 출처에서 잘 작동하는 jQuery 코드가 있습니다.

jQuery.ajax({
    url: "http://example.appspot.com/rest/app",
    type: "POST",
    data: JSON.stringify({"foo":"bar"}),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (response) {
        console.log("success");
    },
    error: function (response) {
        console.log("failed");
    }
});

이제 성공하지 않고 이것을 Angular.js 코드로 변환하려고합니다.

$http({
    url: "http://example.appspot.com/rest/app",
    dataType: "json",
    method: "POST",
    data: JSON.stringify({"foo":"bar"}),
    headers: {
        "Content-Type": "application/json; charset=utf-8"
    }
}).success(function(response){
    $scope.response = response;
}).error(function(error){
    $scope.error = error;
});

도움을 주시면 감사하겠습니다.



답변

$ http를 호출하는 AngularJS 방식은 다음과 같습니다.

$http({
    url: "http://example.appspot.com/rest/app",
    method: "POST",
    data: {"foo":"bar"}
}).then(function successCallback(response) {
        // this callback will be called asynchronously
        // when the response is available
        $scope.data = response.data;
    }, function errorCallback(response) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
        $scope.error = response.statusText;
});

또는 바로 가기 방법을 사용하여 더 간단하게 작성할 수 있습니다.

$http.post("http://example.appspot.com/rest/app", {"foo":"bar"})
.then(successCallback, errorCallback);

주의해야 할 사항이 많이 있습니다.

  • AngularJS 버전이 더 간결합니다 (특히 .post () 메서드 사용).
  • AngularJS는 JS 객체를 JSON 문자열로 변환하고 헤더를 설정합니다 (사용자 정의 가능).
  • 콜백 함수는 이름이 지정 success되고error (각 콜백의 주 매개 변수를하시기 바랍니다) 각각 – 각 버전 1.5에서 사용되지 않는
  • 사용하다 then 대신 작동합니다.
  • then사용에 대한 자세한 정보는 여기 에서 찾을 수 있습니다.

위의 내용은 간단한 예제와 몇 가지 포인터입니다. 자세한 내용은 AngularJS 문서를 확인하세요. http://docs.angularjs.org/api/ng.$http


답변

AngularJs에서 http 서비스를 사용하여 ajax 요청을 구현할 수 있으며, 원격 서버에서 데이터를 읽고로드하는 데 도움이됩니다.

$ http 서비스 방법은 다음과 같습니다.

 $http.get()
 $http.post()
 $http.delete()
 $http.head()
 $http.jsonp()
 $http.patch()
 $http.put()

예 중 하나 :

    $http.get("sample.php")
        .success(function(response) {
            $scope.getting = response.data; // response.data is an array
    }).error(){

        // Error callback will trigger
    });

http://www.drtuts.com/ajax-requests-angularjs/


답변

이것을 사용할 수 있습니다 :

“angular-post-fix”다운로드 : “^ 0.1.0”

그런 다음 각도 모듈을 선언하는 동안 종속성에 ‘httpPostFix’를 추가하십시오.

참고 : https://github.com/PabloDeGrote/angular-httppostfix


답변

$ .param을 사용하여 데이터를 할당 할 수 있습니다.

 $http({
  url: "http://example.appspot.com/rest/app",
  method: "POST",
  data: $.param({"foo":"bar"})
  }).success(function(data, status, headers, config) {
   $scope.data = data;
  }).error(function(data, status, headers, config) {
   $scope.status = status;
 });

이것 좀 봐 : AngularJS + ASP.NET 웹 API 도메인 간 문제


답변