$.post 与 $.ajax
Posted
技术标签:
【中文标题】$.post 与 $.ajax【英文标题】:$.post vs $.ajax 【发布时间】:2011-11-23 15:11:09 【问题描述】:我正在尝试使用 $.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"
);
我错过了什么?
【问题讨论】:
【参考方案1】:它不起作用,因为在您的$.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"
);
【讨论】:
我最近遇到了同样的问题,这是正确的解决方案。【参考方案2】:这是另一种不使用 ajax 的方法。它使用 post 并返回一个 json 对象。
data = ;
data.standardBagProductId = standardBagProductId.trim();
$.post("StandardBag.aspx/RemoveProductFromStandardBag", data , function(response)
$(".reload").click();
,"json");
【讨论】:
简要描述您发布的代码的作用。 您应该在答案中添加描述。【参考方案3】:$.post 函数的第二个参数不应该在“”中。
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
'standardBagProductId': standardBagProductId.trim() ,
function () $(".reload").click(); ,
"json"
);
【讨论】:
【参考方案4】:尝试像这样更改您的帖子数据,
standardBagProductId: standardBagProductId.trim()
【讨论】:
以上是关于$.post 与 $.ajax的主要内容,如果未能解决你的问题,请参考以下文章