Похоже на проблему с кэшем браузера (если я уверен, что это происходит с IE), вы можете использовать $. Ajax и установить для параметра кэширования значение false, поскольку false по умолчанию только для dataType script
и jsonp
:
$.ajax({
type: "GET",
url: "./posts/vote/" + postId + "/1",
success: function (result) {
if (result.result == true)
$("#pst" + postId + " > .pstside > .rank > .score").html(result.voteCount);
},
dataType: "json",
cache: false
});
Или вы можете установить эту опцию глобально для всех функций jQuery Ajax, используя $. AjaxSetup перед использованием $ .getJSON:
$.ajaxSetup({ cache: false });
Редактировать: Вы можете сделать POST-запрос, возвращающий JSON, следующим образом:
$.post("./posts/vote/" + postId + "/1",
function (result) {
if (result.result == true)
$("#pst" + postId + " > .pstside > .rank > .score").html(result.voteCount);
}, "json");
Если вы планируете выполнять много запросов postJSON , вы можете сделать свою собственную функцию:
jQuery.postJSON = function(url, data, callback) {
jQuery.post(url, data, callback, "json") ;
};
И вы сможете использовать его так же, как $ .getJSON