Kar*_*lom 35 javascript 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);
});
});
[...]
});
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误
未捕获的TypeError:$ .ajax(...).success不是函数
在 }).success(function (rooms) {
我想知道这里有什么不对吗?
JCo*_*ton 43
对ajax的调用应该如下所示:
$.ajax({
type: "GET",
url: "/api/rooms",
success: function (rooms) {
}
});
Run Code Online (Sandbox Code Playgroud)
你没有方法链接成功函数,它是字典参数中的一个条目.
Sha*_*are 27
你的代码是正确的,没有问题
但是你可能会包含不允许使用.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>
Run Code Online (Sandbox Code Playgroud)
如果你使用旧的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>
Run Code Online (Sandbox Code Playgroud)
ade*_*neo 10
根据文件
的
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() { ... }
});
Run Code Online (Sandbox Code Playgroud)
然而,由于用户之间的一些混淆,他们后来也伴随着具有相同名称的可链接方法
$.ajax().success( function() { ... })
.error( function() { ... })
.complete( function() { ... })
Run Code Online (Sandbox Code Playgroud)
这些方法自jQuery 1.8以来已被弃用,并且由于使用了Deferred对象而在jQuery 3.0中被完全删除,以及后来的承诺.
的jqXHR.success(),jqXHR.error()以及jqXHR.complete()由可链接superseeded jqXHR.done(), jqXHR.fail()和jqXHR.always()方法,选项回调仍可用于现在.
在jQuery 3.0,jQuery的递延对象也无极/ A +兼容,这意味着它们是"thenable",并且可以与被使用then(),以及
$.ajax("/status").then(function(data) {
}).catch(function(error) {
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47162 次 |
| 最近记录: |