• 【编程笔记】jquery中的ajax的回调函数不能执行


    最近在用jquery的写了一些ajax功能,开始比较顺利,但昨天遇到了一个奇特的问题。jquery的ajax回调函数不能执行了。

    功能描述,实现头像的剪切。在前台用一个drag,然后点击保存,通过ajax发送选择的坐标,实现剪切保存,并返回保存结

    束是否成功。

    下面是我的代码:

    View Code
    1 /*方案一*/
    2 $.post(
    3  "index/resizeandcrop",
    4 { selectorX:$x,selectorY:$y,jdnew:$new},
    5  function(data) {},
    6  "json"
    7 );
    8 /*方案二*/
    9 $.post(
    10 "index/resizeandcrop",
    11 { selectorX:$x,selectorY:$y,jdnew:$new },
    12 function(data){alert("Data Loaded: " + data);},
    13 "json"
    14 );
    15 /*方案三*/
    16 $.ajax({ type: 'POST',
    17 url: URL+"index/resizeandcrop",
    18 data:{ selectorX:$x,selectorY:$y,jdnew:$new },
    19 success: function(data){},
    20 dataType: "json"
    21 });

    方案一:是我的原始代码,能发送坐标,在后台也能剪切和保存,也能返回数据,返回数据是一个succes,但是就是不调用回调

    函数。

    初步判断是我的语句有问题,于是进过和再三检查,也没发现哪有错了,下面就在尝试一下其他的两个ajax方法,于是有了方案二

    和方案三。

    方案二三:这两个都是jquery中ajax的不同写法了(自己认识)。但是还是同样的问题,能执行,回复也有,但是就是不执行回调

    函数,纠结了很久,没有结果。那语法和写法都应该没问题。

    下面就是怀疑是header中的参数不全了,于是拿了两个能完全正确的ajax对比了一下,发现头部文件中也是相同,唯一一个区别就

    Accept: application/json, text/javascript, */*中少了一个  q=1.0

    后面还是没解决,下面就准备尝试一下原生的js和换一个后台页面在查查错了。

         2011-5-2 放完假,现在查错,加入代码:

    View Code
    1 $.ajax({
    2 type: 'POST',
    3 url: URL+"index/resizeandcrop",
    4 data:{ selectorX:$x,selectorY:$y,jdnew:$new },
    5 success: function(data){alert(data);},
    6 error: function(){alert(arguments[1]);},
    7 dataType: "json"
    8 });

    现在返回了一个错误:parsererror ,查找后是编码的问题在后面加上header('Content-type: text/html; charset=utf-8');就没问题了,注意是utf-8,如果是utf8则firefox没问题,ie会出问题的。

    后面的发现,其实这里的原因是返回的json不严格echo "{'re':'success'}";jquery不能解析造成的报错,后面改为 echo "{\"re\":\"success\"}";就没有错误了。

    知识共享许可协议
    作品Tim Zhang创作,采用知识共享署名 3.0 中国大陆许可协议进行许可。 。
  • 相关阅读:
    ASP.NET 2.0 X64的奇怪问题
    【分享】从网上爬的WPF学习资料
    大家一起学习less 5:字符串插值
    大家一起学习less 3:命名空间
    我的模块加载系统 v18
    大家一起学习less 2:自带函数
    “计算机之子”的MVVM框架源码学习笔记
    我的MVVM框架 v0.1发布
    大家一起学习less 6:一些有用的混合函数
    less源码学习
  • 原文地址:https://www.cnblogs.com/ccdc/p/2031514.html
Copyright © 2020-2023  润新知