수집되지 않은 유형 오류: $.ajax(...).성공은 함수가 아닙니다.
저는 jQuery를 처음 접하는 사람입니다.또한 jQuery에 관한 오래된 튜토리얼을 사용하고 있습니다.node.js다음 스니펫을 사용합니다.
$(function () {
var roomId;
$.ajax({
type: "GET",
url: "/api/rooms"
}).success(function (rooms) {
roomId = rooms[0].id;
getMessages();
$.each(rooms, function (key, room) {
var a = '<a href="#" data-room-id="' + room.id + '" class="room list-group-item">' + room.name + '</a>';
$("#rooms").append(a);
});
});
[...]
});
단, 이 에러는 발생합니다.
수집되지 않은 유형 오류: $.ajax(...).성공은 함수가 아닙니다.
에}).success(function (rooms) {
여기서 뭐가 잘못됐을까?
Ajax에 대한 콜은 다음과 같습니다.
$.ajax({
type: "GET",
url: "/api/rooms",
success: function (rooms) {
}
});
성공 함수는 메서드 체인이 아니라 사전 인수의 항목 중 하나입니다.
당신의 코드는 정확합니다. 문제 없습니다.
그러나 .success() 메서드를 허용하지 않는 새로운 jquery 라이브러리를 포함할 수 있습니다.
새로운 버전의 jquery 용도의 경우
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$.ajax({
type: "GET",
url: "/api/rooms",
success: function (rooms) {
}
});
</script>
오래된 jquery를 사용하는 경우 .success() 메서드는 문제없이 실행됩니다.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$.ajax({
url: "/api/rooms",
method: "GET",
data: {'datavar': datavalue}
}).success(function (rooms) {
console.log("successfully run ajax request..." + rooms);
}).done(function () {
console.log("I am from done function");
}).fail(function () {
console.log("I am from fail function.");
}).always(function () {
console.log("I am from always function");
});
</script>
서류에 의하면
그
jqXHR.success(),jqXHR.error(),그리고.jqXHR.complete()콜백 메서드는 jQuery 3.0에서 삭제되었습니다.사용할 수 있습니다.
jqXHR.done(),jqXHR.fail(),그리고.jqXHR.always()대신.
이러한 메서드는 원래 jQuery에 추가되었습니다.$.ajax옵션 콜백으로서 다음과 같이 사용됩니다.
$.ajax({
url : 'mypage.php',
success : function() { ... },
error : function() { ... },
complete : function() { ... }
});
그러나 사용자 간의 혼란으로 인해 나중에 동일한 이름의 체인 가능한 메서드도 함께 제공되었습니다.
$.ajax().success( function() { ... })
.error( function() { ... })
.complete( function() { ... })
이러한 메서드는 jQuery 1.8 이후 사용되지 않으며 지연 객체 및 이후 약속 사용으로 인해 jQuery 3.0에서 완전히 제거되었습니다.
그jqXHR.success(),jqXHR.error(),그리고.jqXHR.complete()쇠사슬에 의해 감시되고 있다jqXHR.done(),jqXHR.fail(),그리고.jqXHR.always()메서드, 옵션콜백은 현재도 사용할 수 있습니다.
jQuery 3.0에서 jQuery의 Deferred 개체는 Promise/A+에도 준거하고 있습니다.즉, 이들은 "그때 사용할 수 있으며"와 함께 사용할 수 있습니다.then()뿐만 아니라.
$.ajax("/status").then(function(data) {
}).catch(function(error) {
});
언급URL : https://stackoverflow.com/questions/39042085/uncaught-typeerror-ajax-success-is-not-a-function
'programing' 카테고리의 다른 글
| angular.js를 사용하여 모델 재설정 (0) | 2023.03.26 |
|---|---|
| .toJS()를 Unmutable.js 및 Flux와 함께 사용하는 경우 (0) | 2023.03.26 |
| 포스트그레스:json 문자열을 텍스트로 변환하는 방법 (0) | 2023.03.26 |
| 스프링-mvc가 있는 AngularJS (0) | 2023.03.26 |
| Jquery를 사용하여 워드프레스에 대한 Ajax 검색 결과를 검색하는 방법 (0) | 2023.03.26 |