我正在尝试使用$ .post方法来调用Web服务,我已经使用$ .ajax方法了解它:
$.ajax({
type: "POST",
url: "StandardBag.aspx/RemoveProductFromStandardBag",
data: "{'standardBagProductId': '" + standardBagProductId.trim() + "' }",
success: function(){
$((".reload")).click();
},
dataType: "json",
contentType: "application/json"
});
但是当我将相同的方法移动到$ .post方法时,它将不起作用:
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
"{'standardBagProductId': '" + standardBagProductId.trim() + "' }",
function () { $((".reload")).click(); },
"json"
);
我错过了什么?
答案 0 :(得分:24)
它不起作用,因为在$.post
方法中,您无法将请求的内容类型设置为application/json
。因此,无法使用$.post
调用ASP.NET PageMethod,因为ASP.NET PageMethod需要JSON请求。您必须使用$.ajax
。
我只想修改data
以确保它是正确的JSON编码:
$.ajax({
type: "POST",
url: "StandardBag.aspx/RemoveProductFromStandardBag",
data: JSON.stringify({ standardBagProductId: standardBagProductId.trim() }),
success: function() {
$(".reload").click();
},
dataType: "json",
contentType: "application/json"
});
答案 1 :(得分:0)
这是另一种不使用ajax的方法。它使用post并返回一个json对象。
data = {};
data.standardBagProductId = standardBagProductId.trim();
$.post("StandardBag.aspx/RemoveProductFromStandardBag", data , function(response){
$(".reload").click();
},"json");
答案 2 :(得分:-1)
对于$ .post函数,第二个参数不应该在“”中。
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
{'standardBagProductId': standardBagProductId.trim() },
function () { $(".reload").click(); },
"json"
);
答案 3 :(得分:-1)
尝试更改这样的帖子数据,
{standardBagProductId: standardBagProductId.trim() }