Javascript对象方法分配ajax调用响应失败
javascript object method fails to assign ajax call response
我已经定义了以下对象:
var WealthyLaughingDuckControl = {
initialised: false,
users: [],
fetchData: function() {
$.ajax({
type: "GET",
dataType: "json",
url: "../php/client/json.php",
data: {
type: "users"
}
}).done(function(response) {
this.initialised = true;
this.users = response;
});
},
init: function() {
if (!this.initialised) {
this.fetchData();
}
},
getData: function() {
return this.users;
}
};
我正在浏览器javascript控制台调试这个对象。执行WealthyLaughingDuckControl.init()
:
Object {initialised: false, users: Array[0], fetchData: function, init: function, getData: function}
但是,我确信ajax响应工作正确,因为当我执行以下命令时:
$.ajax({
type: "GET",
dataType: "json",
url: "../php/client/json.php",
data: {
type: "users"
}
}).done(function(response) {
alert(response);
});
浏览器用[Object object]
提醒我。因此,我期望对象将initialised=true
和users
设置为对象响应值。上面的代码有什么问题?
您需要在ajax调用中设置对象的上下文参数,以便在ajax回调中使用它。
$.ajax({
type: "GET",
dataType: "json",
context: this,
url: "../php/client/json.php",
data: {
type: "users"
}
}).done(function(response) {
this.initialised = true;
this.users = response;
});
上下文类型:PlainObject
这个对象将成为所有ajax相关回调的上下文。默认情况下,上下文是一个>对象,表示调用($. js)时使用的ajax设置。ajaxSettings与设置合并>传递到$.ajax)。例如,指定DOM元素作为上下文将使>的上下文成为请求的完整回调,如下所示:
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
$(this).addClass("done");
});
相关文章:
- Ajax调用在Firefox中不会自动响应
- 在Javascript中的ajax响应之后未调用Dropdown事件
- 调用Ajax并返回响应
- 如何放置单独的ajax调用,使页面的一部分完全响应,而另一部分仍在加载
- 在JavaScriptAjax调用中从web服务中的XMLDocument获取响应.
- 使用嵌套AJAX调用的响应填充数组
- 在SPRING中从ajax调用响应时显示不可接受错误
- 如果从onclick()内部调用app.open,则它没有响应
- ajax调用:响应<->数据类型
- jQuery验证,在继续之前等待服务调用响应
- jQuery:点击禁用点击事件,直到ajax调用响应
- 从 Greasemonkey 到 Servlet 的 Ajax 调用:响应失败
- AJAX 调用响应文本为空
- 如何检索 java 设置并迭代来自 ajax 调用响应的值
- ajax调用响应被转发到浏览器上的新html页面
- AngularJS HTTP调用/响应
- ajax成功中的广告调用响应包含document.write
- PHP::2 AJAX调用::2响应::按顺序
- Javascript对象方法分配ajax调用响应失败
- 通过jqXhr访问Ajax调用响应PHP