我同样一段代码,导入的Jquery库版本不一样而导致我的ajax方法调用后台失败
我的asp.net前台代码如下:  
    <script type="text/javascript">
        $(function() {
            $("#test1").click(function() {
                $.ajax({
                    //要用post方式   
                    type: "POST",
                    //方法所在页面和方法名
                    url: "JQueryAjax.aspx/SayHello",
                    contentType: "application/json;utf-8",
                    dataType: "json",
                    success: function(data) {
                        //返回的数据用data.d获取内容   
                        alert(data.d);
                    },
                    error: function(err) {
                        alert(err);
                    }
                });                //禁用按钮的提交   
                return false;
            });
        });      </script></head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="test1" runat="server" Text="TestAjax1" />
    </div>
    </form>
</body>
</html>后台代码如下:
    [System.Web.Services.WebMethod]
    public static string SayHello()
    {
        return "Hello Ajax!";
    } 
我用 <script src="../Jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
就不会进入后台方法中,会进入ajax的error中,
但是我用  <script src="../Jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
就能进入后台的方法中,返回“Hello Ajax”这是什么原因啊?为什么Jquery的版本会存在这样的差异啊,求大侠指点迷津啊……

解决方案 »

  1.   

    error: function(err) {
                            alert(err.responseText);//看输出什么,猜测是1.3未设置响应头什么的,导致.net没有放回json格式的是数据
                        }
      

  2.   

    期待Jquery高手或者js高手解决此问题……
      

  3.   

    jquery1.4+ 对json数据的格式检测更严格,不合标准形式都会抱错。楼主试试
    dataType: "json" 改成 dataType: "text"或者干脆去掉这一行
      

  4.   

    用firebug看看,请求的url返回什么数据了?
      

  5.   

    你请求的是 json数据
    单你返回的不是 json啊你返回一个 json 字符串 看看报错不之后再调试下js看看 jquery怎么处理返回数据的
      

  6.   

    首先,asp:Button生成的控件id不是test1
    其次,在方法上加上声明[ScriptMethod(ResponseFormat = ResponseFormat.Json)]以返回json数据
      

  7.   

    看一下  你error的错误提示是什么吧~  贴出来 大家一起帮你研究一下~
      

  8.   

    你们可以拿我代码试试就知道了,ie和FireFox弹出的页面错误信息还不一样……
      

  9.   

    这就是学习jquery的成本跟压力了,版本是没有尽头的,还是好好写些原生代码吧
      

  10.   

    这里不能这么比喻,马与火车是两种不同的事物,而jquery只是js的创造的工具,工具越好用肯定会做得越复杂,然后,原本可以用最简单的工具(js)凿穿的墙壁,你现在用一把电钻(jquery)来钻效率虽然会更好,但是如果没有电(版本问题或其它)了,只会用电钻的人要怎么办?再者,优雅的石雕艺术品从来就是用凿子慢慢雕琢出来的,你见过哪个能用电钻凿石雕的?
      

  11.   

    首先我要纠正你这个问题,你把电钻的缺点和凿子的优点进行比较,小木舟可以载东西,当需要载上万吨的货物时你会用小舟还是大轮船呢?比较各有优缺点,你不会又反驳说,万一没有油了怎么办吧?这些不是重点吧?时代在前进,我们需要的是效率,只有效率提上来了,才能推动时代的前进,Jquery能提高效率,当然任何事都有优缺点,但在优点大大超过缺点时,我们必然会选择,既然Jquery会因版本不同而产生问题,那么我们需要做的是如果去解决这个问题,而不是逃避这个问题……
      

  12.   

    也许是旧版本的bug,在新版中修复了。有兴趣去jq的官方资料里面找找看吧。如果要在1.3.2和1.4.2之间做选择,没有特殊情况的话,我建议你选1.4.2。
    虽然1.6也早就出了,而1.4.2也曾经保持为一个成熟稳定的版本有很长一段时间,建议你优先选择。一般新版本会比旧版本更好,解决了很多bug。
    除非特别注重稳定性而需要成熟的版本,或者新版本对旧版本功能做了破坏性的修改,为了兼容性可以选择旧版本。
      

  13.   

    效率也有开发效率跟运行效率,可以很坦率地说,web方面的产品,在安全的前提下,运行效率远比开发效率更为重要。同时我也绝没有否认jquery的优点,如果说看不起它,也应该只是我自以为是的看法:因为它太庞大,同时又不类同于.net方面的框架,你越是陷在其中越久,创造力就越受束缚,无论你想做点什么都要看它能否帮你实现而不是由你的创意来自由发挥,所以我坚持写原生代码的js然后能慢慢形成自己的风格或是小小框架,虽然开发效率不如它,但每行代码的来龙去脉自己都能把握住,这个实在很重要。
      

  14.   

    唉请理解我并不针对你,我也不可能建议你绕过碰到的问题而去重建整个前端的技术规划,我只是有感于这个版块越来越有仅仅是为了解决jquery的问题而存在,你注意一下这个版块提出的那些问题,十条问题内就有好几条与jquery有关,无论如何对于想提升js技术的人来说这样的环境会有很严重的阻碍.
      

  15.   

    新版本json格式必须是
    {"A":"B"}
    而不能是
    {A:"B"}这样不加引号
      

  16.   


    昨天遇到这个问题了,1.4里面dataType: "json",这个JSON要大写的,你可以试下