在与后台交互的时候,经常使用到jquery的$.ajax()方法来请求数据;

回调函数用的比较多的是success,但是complete、beforeSend、error函数也是很有用的;

下面是使用例子小结:

html代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>ajax_demo</title>
  6. </head>
  7. <style>
  8. .display{
  9. width:600px;
  10. height: 400px;
  11. border:1px solid;
  12. }
  13. </style>
  14. <body>
  15. <div class="box">展示数据区域:</div>
  16. <div class="display"/></div>
  17. <input type="button" value="点击获取数据" id="inp" onclick="getData()"/>
  18. <script type="text/javascript" src="jquery.min.js"></script>
  19. <script type="text/javascript" src="bootstrap.min.js"></script>
  20. <script type="text/javascript">

js代码:

  1. <script type="text/javascript">
  2. function getData(){
  3. $.ajax({
  4. url:'http://192.168.31.227/sfytjjk/wdaj/wdla.php',
  5. type:"post",
  6. timeout:5000,
  7. async:true,
  8. cache:true,
  9. data:"user_id=12&page=0",
  10. dataType:"json",
  11. contentType:"application/x-www-form-urlencoded",
  12. beforeSend:function(XMLHttpRequest){
  13. console.log(this);
  14. $("#inp").val("正在获取数据...");
  15. },
  16. success:function(data){
  17. console.log(data);
  18. $(".display").html("获取到的数据:</br>");
  19. $(".display").append("总条数:"+data.data.all_count);
  20. $("#inp").val("点击获取数据");
  21. },
  22. complete:function(XMLHttpRequest,textStatus){
  23. if(textStatus=='timeout'){
  24. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  25. xmlhttp.abort();
  26. $(".box").html("网络超时!");
  27.     }
  28. $("#inp").val("点击获取数据");
  29. },
  30. error:function(XMLHttpRequest, textStatus){
  31. console.log(XMLHttpRequest);  //XMLHttpRequest.responseText    XMLHttpRequest.status   XMLHttpRequest.readyState
  32. console.log(textStatus);
  33. $(".box").html("服务器错误!");
  34. }
  35. });
  36. /*
  37. 通过捕捉error事件来获取出错的信息:
  38. error: function(XMLHttpRequest, textStatus, errorThrown) {
  39. alert(XMLHttpRequest.status);
  40. alert(XMLHttpRequest.readyState);
  41. alert(textStatus);
  42. }
  43. XMLHttpRequest.readyState: 状态码的意思
  44. 0 - (未初始化)还没有调用send()方法
  45. 1 - (载入)已调用send()方法,正在发送请求
  46. 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
  47. 3 - (交互)正在解析响应内容
  48. 4 - (完成)响应内容解析完成,可以在客户端调用了
  49. status:返回的HTTP状态码,比如常见的404,500等错误代码。
  50. statusText:对应状态码的错误信息,比如404错误信息是not found,500是Internal Server Error。
  51. responseText :服务器响应返回的文本信息
  52. complete: function (XMLHttpRequest, textStatus) {
  53. //textStatus的值:success,notmodified,nocontent,error,timeout,abort,parsererror
  54. },
  55. error: function (XMLHttpRequest, textStatus, errorThrown) {
  56. //textStatus的值:null, timeout, error, abort, parsererror
  57. //errorThrown的值:收到http出错文本,如 Not Found 或 Internal Server Error.
  58. }
  59. */
  60. }
  61. </script>

原文链接:http://blog.csdn.net/qq_30337695/article/details/51373727

随机推荐

  1. Dockerfile与Docker构建流程解读

    摘要 本文主要讨论了对docker build的源码流程进行了梳理和解读,并分享了在制作Dockerfile过程中的一些实践经验,包括如何调试.优化和build中的一些要点.另外,还针对现有Docke ...

  2. apns关于APP数字角标的理解

    前两天群里有兄弟在吐槽,做远程推送的时候:老板要求APP桌面图标的右上角显示红色未读数字(数字角标)要精准,有多少未读通知就显示数字几:但是后台的弟兄在发送推送通知的时候,每次的角标是1,然后要移动端 ...

  3. Javascript设计模式之装饰者模式详解篇

    一.前言: 装饰者模式(Decorator Pattern):在不改变原类和继承的情况下动态扩展对象功能,通过包装一个对象来实现一个新的具有原对象相同接口的新的对象. 装饰者模式的特点: 1. 在不改 ...

  4. 手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用

    开发手机APP和 H5 应用经常需要在本地和线上环境分开测试,一般想到的操作都是修改hosts,我也一直这么干的,但手机上修改hosts是需要 ROOT权限的,这样太过麻烦,还有变砖头的风险,而且有些 ...

  5. 选择Blobs (Evision)

    C++ // Sort by decreasing area Blobs.SortObjectsUsingFeature(OBJ_AREA, OBJ_SORT_DESCENDING); // Enum ...

  6. 关于map()与filter()

    def f1(a): if a == 3: pass else: return a*a li = [1,2,3,4] for i in filret(f1,li) print(i) def f1(a) ...

  7. 双数组trie树的基本构造及简单优化

    一 基本构造 Trie树是搜索树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,是中文匹配分词算法中词典的一种常见实现.它本质上是一个确定的有限状 ...

  8. ecshop3.0.0注入

    配个环境来演示给别人看..分析一下.flow.php文件缺陷,order_id在post请求没有单引号保护.造成注入 <?php elseif ($_REQUEST['step'] == 're ...

  9. C# IIS7.0+ Web.Config 配置Session过期时间

    1. 2. 3. <sessionState mode="InProc" timeout="120"></sessionState>

  10. python代码随笔

    此篇随笔只是作为自己偶然想起的遇到过的代码片段..记录下! 1.巧用lambda,reduce实现多层嵌套的装饰器: 示例如下: #示例 函数chain([a,b,c,d) (input), 最终实现 ...