asp.net - examples - $.post vs $.ajax
ajax jquery vb net (4)
Estoy tratando de usar el método $ .post para llamar a un servicio web, lo tengo funcionando usando el método $ .ajax:
$.ajax({
type: "POST",
url: "StandardBag.aspx/RemoveProductFromStandardBag",
data: "{''standardBagProductId'': ''" + standardBagProductId.trim() + "'' }",
success: function(){
$((".reload")).click();
},
dataType: "json",
contentType: "application/json"
});
Pero cuando muevo el mismo método en el método $ .post, no funcionará:
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
"{''standardBagProductId'': ''" + standardBagProductId.trim() + "'' }",
function () { $((".reload")).click(); },
"json"
);
¿Qué me estoy perdiendo?
Esta es otra forma de hacerlo sin usar ajax. Utiliza post y devuelve un objeto json.
data = {};
data.standardBagProductId = standardBagProductId.trim();
$.post("StandardBag.aspx/RemoveProductFromStandardBag", data , function(response){
$(".reload").click();
},"json");
Intenta cambiar los datos de tu publicación como este,
{standardBagProductId: standardBagProductId.trim() }
No funciona porque en su método $.post
no puede establecer el tipo de contenido de la solicitud en application/json
. Por lo tanto, no es posible invocar un método de página ASP.NET usando $.post
porque un método de página ASP.NET requiere una solicitud JSON. Tendrás que usar $.ajax
.
Simplemente modificaría los data
para garantizar que estén correctamente codificados en JSON:
$.ajax({
type: "POST",
url: "StandardBag.aspx/RemoveProductFromStandardBag",
data: JSON.stringify({ standardBagProductId: standardBagProductId.trim() }),
success: function() {
$(".reload").click();
},
dataType: "json",
contentType: "application/json"
});
para $ .post función segundo parámetro no debe estar en "".
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
{''standardBagProductId'': standardBagProductId.trim() },
function () { $(".reload").click(); },
"json"
);