I'm trying to use the $.post method to call a web service, I've got it working using the $.ajax method:
$.ajax({
type: "POST",
url: "StandardBag.aspx/RemoveProductFromStandardBag",
data: "{'standardBagProductId': '" + standardBagProductId.trim() + "' }",
success: function(){
$((".reload")).click();
},
dataType: "json",
contentType: "application/json"
});
But when I move the same method into the $.post method, it will not work:
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
"{'standardBagProductId': '" + standardBagProductId.trim() + "' }",
function () { $((".reload")).click(); },
"json"
);
What am I missing?
This is another way to do it not using ajax. It uses post and returns a json object.
Try changing your post data like this,
It doesn't work because in your
$.post
method you cannot set the content type of the request toapplication/json
. So it is not possible to invoke an ASP.NET PageMethod using$.post
because an ASP.NET PageMethod requires a JSON request. You will have to use$.ajax
.I would just modify the
data
in order to ensure that it is properly JSON encoded:for $.post function second param should not be in "".