First my code
$.getJSON(\"./posts/vote/\" + postId + \"/1\", null, function(result) {
if (result.result == true)
$(\"#pst\" + postId + \" > .pstside
Sounds like a browser cache issue (if is that I'm pretty sure that is happening with IE), you may want to use $.ajax and set the cache option to false, since it is false by default only for dataType script
and 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
});
Or you could set that option globally, for all the jQuery Ajax functions, using $.ajaxSetup before using $.getJSON:
$.ajaxSetup({ cache: false });
Edit: You can do a POST request returning JSON like this:
$.post("./posts/vote/" + postId + "/1",
function (result) {
if (result.result == true)
$("#pst" + postId + " > .pstside > .rank > .score").html(result.voteCount);
}, "json");
If you plan to do a lot of postJSON request, you can make your own function:
jQuery.postJSON = function(url, data, callback) {
jQuery.post(url, data, callback, "json") ;
};
And you'll be able to use it just like $.getJSON