【问题标题】:jquery ajax call return valuejquery ajax调用返回值
【发布时间】:2011-09-21 17:24:11
【问题描述】:

我有一个带有静态页面方法的 asp.net 应用程序。我正在使用以下代码调用该方法并获取其返回值。

$.ajax({
       type: "POST",
       url: "myPage/myMethod",
       data: "{'parameter':'paramValue'}",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function(result) {alert(result);}                                
 });

我得到的是[object Object]。

下面是我的静态方法。我的 ScriptManager 中也有 EnablePageMethods="true" EnablePartialRendering="true"

    [WebMethod]
    [ScriptMethod]
    public static string myMethod(string parameter)
    {
         return "Result";
    }

有没有办法让我得到返回值?

【问题讨论】:

  • 当您更新帖子以包含问题时,如果是关于返回值,请包含您正在调用的方法
  • 您的警报呼叫中有一个额外的右括号。不知道你的问题,这可能是你的问题。警报(结果));
  • 除非您使用的是 asp.net 2.0 或更低版本,否则您会卡在 d 参数上。 encosia.com/never-worry-about-asp-net-ajaxs-d-again

标签: c# javascript jquery asp.net ajax


【解决方案1】:

尝试使用 Chrome 开发者工具或 Firfox 的 firebug 插件。不确定 IE 的开发者工具是否允许您检查 ajax 调用?

您要查找的结果字符串实际上在结果对象中。您需要查看 d 变量。我记得在某处读过为什么会这样,我认为是 ASP.NET 在玩弄:|

试试:

success: function(data) {alert(data.d);} 

c#

[WebMethod]
public static string GetTest(string var1)
{
    return "Result";
}

希望这会有所帮助。

【讨论】:

  • data.d 是这里的关键,出于某些安全原因,asp.net 在 .d 中提供 json
  • 在编辑问题后几分钟才发现。哈哈。 jquery 太棒了!喜欢它。
  • 它不是 asp.net 玩的。 .d 的存在是有原因的 :)
【解决方案2】:

只是您被 ASP.NET 3.5 的 JSON 响应中引入的 .d 卡住了。引用戴夫·沃德的话,

如果您不熟悉“.d” 我指的是,它只是一个 微软添加的安全功能 在 ASP.NET 3.5 的 ASP.NET 版本中 阿贾克斯。通过封装 JSON 父对象内的响应, 框架有助于防止 particularly nasty XSS vulnerability.

所以只需检查.d 是否存在,然后打开它。像这样改变你的成功函数。

success: function(result) {
    var msg = result.hasOwnProperty("d") ? result.d : result;
    alert(msg );
}        

【讨论】:

    【解决方案3】:

    这个怎么样?

    $.ajax({
         type: "POST",
         url: "myPage/myMethod?paramater=parameter",
         success: function(result) {
            alert(result);
         }                                
     });
    

    【讨论】:

      【解决方案4】:

      我找到了解决办法。

      您可以使用 parseJSON 来获取结果 http://api.jquery.com/jQuery.parseJSON/

      或将数据类型更改为 html 以查看实际值。 http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests

      谢谢你们的帮助。

      【讨论】:

        猜你喜欢
        • 2012-06-01
        • 2010-09-28
        • 1970-01-01
        • 2011-02-20
        • 2012-11-25
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多