AngularJS의 $http 서비스를 사용하여 AJAX 호출을 수행할 때 다음이 필요한 양식 데이터를 보낼 때 문제가 발생할 수 있습니다. URL 인코딩. 이는 jQuery가 없는 솔루션을 찾는 사람들에게 특히 실망스러울 수 있습니다.
다음 접근 방식으로 Angular의 $http 서비스를 사용하여 양식 데이터를 보내려는 시도는 실패로 이어졌습니다.
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.
AngularJS v1.4 이상의 경우 새로 추가된 서비스를 활용하면 더욱 간단한 솔루션이 제공됩니다.
data: {username: $scope.userName, password: $scope.password}, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
위 내용은 jQuery 없이 AngularJS의 $http 서비스로 URL 인코딩된 양식 데이터를 게시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!