【问题标题】:Message from webpage undefined来自网页的消息未定义
【发布时间】:2011-01-31 07:41:18
【问题描述】:

我将一个简单的字符串从 web 方法返回到 Javascript 函数。

我在 ASP.NET 2.0 中使用启用 AJAX 的网站。我在 Firefox 中得到日期,但在 IE 8 中它返回 undefined

我是否必须使用一些序列化类来解析 JSON 格式的字符串?在我的网络方法中,我只是在使用:

    return DateTime.Now.ToString();

 $(document).ready(function(){
     var pageUrl = '<%=ResolveUrl("~/test/test.aspx")%>';

        // Test
        $('#<%=trgNo.ClientID%>').change(function(){
            var trgId = $(this+'input:checked').val();

            $.ajax({
                type: "POST",
                url : pageUrl+ '/getDet',
                data : '{categ: "' +trgId + '"}',
                contentType:"application/json; charset=utf-8",
                dataType:"json",
                success:OnSuccess,
                failure: function(msg){
                    if(msg.hasOwnProperty("d"))
                        alert(msg.d);   
                    else
                        alert('error fetching values from database');
                   }
                });
        });

        function OnSuccess(msg)
        {
        if(msg.hasOwnProperty("d"))
            alert(msg.d);
        else
            alert(msg);
        }
});

编辑 似乎成功功能正在触发问题是响应'alert(msg)'在firefox中有效,但在带有asp.net 2.0的IE 8中无效

【问题讨论】:

  • 这段代码在我的机器上运行良好(IE 和 Firefox 都有)。做一件事,在 fiddler 中查看服务器响应,然后告诉我

标签: asp.net jquery webforms


【解决方案1】:

也许您不想使用它,但我对 asp net ajax 内置功能非常满意,因为它构建了一个标题,可以在浏览器上正常运行。

$(document).ready(function(){
     var pageUrl = '<%=ResolveUrl("~/test/test.aspx")%>';

        // Test
        $('#<%=trgNo.ClientID%>').change(function(){
            var trgId = $(this+'input:checked').val();

            var proxy = Sys.Net.WebServiceProxy;
            proxy.invoke("",                // if current page "", if webservice "/srv.asmx"
                         "getDet",              //method name
                         false,                 //post = true, get = false 
                         { categ : trgId },     //javascript object
                         OnSuccess,             // Success Function
                         onError,               // Error Function
                         { yourOwn : userData } // Custom User Data to Handler
            );

        });

        function OnSuccess(response, usercontext)
        {

            // usercontext.yourOwn === userData;

            // response is sent WITHOUT "d", it is removed internally by the proxy 

        alert(response);
        }

});

不要忘记包含 ScriptManager...

【讨论】:

    猜你喜欢
    • 2017-07-25
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2016-11-03
    • 2021-12-06
    • 2013-08-05
    • 2021-04-21
    相关资源
    最近更新 更多