Asp.net

$.post 與 $.ajax

  • June 15, 2015

我正在嘗試使用 $.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"
);

我錯過了什麼?

它不起作用,因為在您的$.post方法中,您無法將請求的內容類型設置為application/json. 因此無法呼叫 ASP.NET PageMethod using $.post,因為 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"
});

引用自:https://stackoverflow.com/questions/7528757