> 웹 프론트엔드 > JS 튜토리얼 > jQuery 없이 AngularJS의 $http 서비스로 URL 인코딩된 양식 데이터를 게시하는 방법은 무엇입니까?

jQuery 없이 AngularJS의 $http 서비스로 URL 인코딩된 양식 데이터를 게시하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-03 17:12:14
원래의
404명이 탐색했습니다.

How to POST URL-Encoded Form Data with AngularJS's $http Service Without jQuery?

jQuery 없이 $http를 사용하여 URL 인코딩된 양식 데이터 게시

AngularJS의 $http 서비스를 사용하여 AJAX 호출을 수행할 때 다음이 필요한 양식 데이터를 보낼 때 문제가 발생할 수 있습니다. URL 인코딩. 이는 jQuery가 없는 솔루션을 찾는 사람들에게 특히 실망스러울 수 있습니다.

문제

다음 접근 방식으로 Angular의 $http 서비스를 사용하여 양식 데이터를 보내려는 시도는 실패로 이어졌습니다.

  • 데이터: {사용자 이름: $scope.userName, 비밀번호: $scope.password}
  • 매개변수: {사용자 이름: $scope.userName, 비밀번호: $scope.password}
  • 데이터: JSON.stringify({사용자 이름: $scope.userName, 비밀번호: $scope.password})

솔루션

URL 인코딩을 성공적으로 POST하려면 양식 데이터를 사용하려면 데이터 개체를 URL 매개변수로 변환해야 합니다. Ben Nadel에 따르면 Angular는 기본적으로 나가는 데이터를 JSON으로 직렬화하고 "application/json" 콘텐츠 유형으로 게시합니다.

이 동작을 변경하고 양식 데이터를 게시하려면 다음과 같이 코드를 업데이트하세요.

data: {username: $scope.userName, password: $scope.password}
로그인 후 복사
transformRequest: function(obj) {
    var str = [];
    for(var p in obj)
    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
    return str.join("&");
},
로그인 후 복사

이 코드는 JavaScript 개체를 URL 인코딩 문자열로 변환하여 별도의 작업 없이 양식 데이터를 성공적으로 게시할 수 있도록 합니다. jQuery.

Angular 1.4로 향상된 솔루션

AngularJS v1.4 이상의 경우 새로 추가된 서비스를 활용하면 더욱 간단한 솔루션이 제공됩니다.

data: {username: $scope.userName, password: $scope.password},
headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
}
로그인 후 복사

위 내용은 jQuery 없이 AngularJS의 $http 서비스로 URL 인코딩된 양식 데이터를 게시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿