假设我这样做:
$.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);
});
答案 0 :(得分:2)
首先,您可以将数据作为更清晰,可读的对象传递,而不是将其传递到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);
}
答案 1 :(得分:1)
通常没有必要这样,因为你的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);
});
})();
答案 2 :(得分:0)
是的,您可以在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/找到。