首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >$.post vs $.ajax

$.post vs $.ajax
EN

Stack Overflow用户
提问于 2011-09-23 20:12:57
回答 4查看 6.1K关注 0票数 16

我正在尝试使用$.post方法来调用web服务,我已经使用$.ajax方法使其正常工作:

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: "StandardBag.aspx/RemoveProductFromStandardBag",
    data: "{'standardBagProductId': '" + standardBagProductId.trim() + "' }",
    success: function(){
                 $((".reload")).click();
             },
    dataType: "json",
    contentType: "application/json"
});

但是,当我将相同的方法移到$.post方法中时,它将不起作用:

代码语言:javascript
复制
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
    "{'standardBagProductId': '" + standardBagProductId.trim() + "' }",
    function () { $((".reload")).click(); },
    "json"
);

我遗漏了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-23 20:15:59

它不起作用,因为在您的$.post方法中,您不能将请求的内容类型设置为application/json。因此,不可能使用$.post调用ASP.NET PageMethod,因为ASP.NET PageMethod需要JSON请求。您将不得不使用$.ajax

我只需修改data,以确保其经过正确的JSON编码:

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: "StandardBag.aspx/RemoveProductFromStandardBag",
    data: JSON.stringify({ standardBagProductId: standardBagProductId.trim() }),
    success: function() {
        $(".reload").click();
    },
    dataType: "json",
    contentType: "application/json"
});
票数 25
EN

Stack Overflow用户

发布于 2015-06-16 06:34:29

这是另一种不使用ajax的方法。它使用post并返回一个json对象。

代码语言:javascript
复制
data = {};
data.standardBagProductId = standardBagProductId.trim();
$.post("StandardBag.aspx/RemoveProductFromStandardBag", data , function(response){
    $(".reload").click();
},"json");
票数 0
EN

Stack Overflow用户

发布于 2011-09-23 20:15:48

for $.post函数的第二个参数不应在"“中。

代码语言:javascript
复制
$.post("StandardBag.aspx/RemoveProductFromStandardBag",
    {'standardBagProductId': standardBagProductId.trim() },
    function () { $(".reload").click(); },
    "json"
);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7528757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档