来自网页的消息未定义 [英] Message from webpage undefined

查看:716
本文介绍了来自网页的消息未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将一个简单的字符串从Web方法返回到Javascript函数.

I am returning a simple string from a webmethod to a Javascript function.

我正在ASP.NET 2.0中使用启用AJAX的网站.我在Firefox中获取了日期,但在IE 8中返回了undefined.

I am using an AJAX enabled website in ASP.NET 2.0. I get the date in firefox but inside IE 8 it returns undefined.

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

Do I have to parse the string in the JSON format using some serialize class? In my webmethod, I am just using:

    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中无效

Edit It seems the success function is firing the problem is with response 'alert(msg)' works in firefox but not in IE 8 with asp.net 2.0

推荐答案

也许您不想使用它,但是我对asp net ajax内置函数感到非常满意,因为它构建了一个标头,可以在浏览器.

Maybe you dont want to use this, but I´m very happy with the asp net ajax build in function, since it builds a header, that works properly on browsers.

$(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 ...

Dont forget to include the ScriptManager...

这篇关于来自网页的消息未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆