Предполагая, что я это делаю:
$.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);
});
Обычно нет необходимости в этом, так как ваш вызов 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);
});
})();
ну сначала вы можете передать данные как объект, который более понятен и читабельен, вместо того, чтобы передавать его в url.. используйте getJOSN, чтобы получить ответ как json, который включает в себя id div, который вам нужно обновить
$.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 для обновления, вы можете установить его в переменную и использовать его позже
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, которая будет выполнена после успеха или отказа запроса 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/.
id_of_div_to_update
- это идентификатор атрибута html элемента DOM? Я имею в виду не значение с сервера?var callback = (function( id ){ return function( data ){ // here u get id and data };})( id_of_div_to_update);