将信息传递到 jQuery ajax 响应处理函数中
Pass information into jQuery ajax response handling function
假设我正在这样做:
$.get("/api/GetComments?post=" + post, function(data) {
var a = JSON.parse(data);
console.log("comments=" + a.count);
});
但是,当我执行.get
时,我需要提供有关请求的元数据,响应处理函数可以访问这些数据(而无需将其传递到服务器和从服务器传递),即类似的东西?
$.get("/api/GetComments?post=" + post, function(data, id_of_div_to_update) {
var a = JSON.parse(data);
$("div[id=" + id_of_div_to_update + "]").text(a);
});
首先,您可以将数据作为更清晰和可读的对象传递,而不是在url中传递它。使用 getJOSN 以 JSON 形式获取响应,其中包括您需要更新的div ID
$.getJSON(url, {"post":post},function(data) {
console.log("comments=" + data.count);
console.log("div_to_update=" + data.id_of_div_to_update);
}
你的回答应该是这样的
{"count":1,"id":12}
更新
由于我假设您已经知道要更新的div 的 ID,因此您可以将其设置为变量并稍后使用
var id_of_div_to_update="something";
$.getJSON(url, {"post":post},function(data) {
console.log("comments=" + data.count);
console.log("div_to_update=" + id_of_div_to_update);
}
通常不需要这样做,因为您的 ajax 调用存在于闭包(函数)作用域中,这意味着它知道(您定义所需的任何数据)有关一些其他数据 可视化回调数据需要:
// ...
(function(){
// ...
var id_of_div_to_update = '#output';
// ...
$.get("/api/GetComments?post=" + post, function(data) {
var a = JSON.parse(data);
console.log("comments=" + a.count);
console.log("div_to_update=" + id_of_div_to_update);
});
})();
是的,您可以在 AJAX 中添加一个回调函数,该函数在 get 请求成功或失败后执行。例如
$.ajax({
url: url,
data: data,
success: function(response){
console.log(response)
// process
},
});
如果你的jQuery版本高于1.8,你应该使用"done","fail"和"always"回调。更多信息可以在 http://api.jquery.com/jQuery.get/找到。
相关文章:
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- Ajax响应转换
- 如何在数据表中设置从Ajax响应选中的复选框
- 在Javascript中的ajax响应之后未调用Dropdown事件
- RubyonRails-Ajax响应的问题
- Ajax:Ajax响应中的链接不起作用
- 如何执行ajax响应返回的javascript函数
- 带有 AJAX 响应或 AJAX 响应的 IF 条件.响应.Text 不起作用
- 正在检查ajax响应中的错误数据
- 如何从ajax响应中重新加载整个页面
- 如何使用jQuery/Ajax响应特定的提交按钮
- 是浏览器在AJAX响应中自动处理的HTTP标头
- Masony无法处理ajax响应
- 使用yii2表单等待ajax响应
- jquery返回ajax响应和用户定义的变量到函数
- 使用Ajax响应更新TextBox
- 如何在jquery ajax响应后设置jquery滑块的起始值
- Rails 4中不执行Ajax响应
- jquery解析ajax响应