common_ajax.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /**
  2. * Created by Mai on 2017/4/20.
  3. */
  4. /**
  5. * 设置全局的AJAX请求默认选项
  6. * 主要设置了AJAX请求遇到Session过期的情况
  7. */
  8. $.ajaxSetup({
  9. complete: function (data) {
  10. if (data.responseJSON&&data.responseJSON.ret_code && data.responseJSON.ret_code == 99) {
  11. alert(data.responseJSON.ret_msg);
  12. var top = getTopWindow();
  13. setTimeout('top.location.href = "/login";', 300);
  14. }
  15. }
  16. });
  17. /**
  18. * 在页面中任何嵌套层次的窗口中获取顶层窗口
  19. * @return 当前页面的顶层窗口对象
  20. */
  21. function getTopWindow() {
  22. var p = window;
  23. while (p != p.parent) {
  24. p = p.parent;
  25. }
  26. return p;
  27. }
  28. var CommonAjax = {
  29. post: function (url, data, successCallback, errorCallback) {
  30. $.ajax({
  31. type:"POST",
  32. url: url,
  33. data: {'data': JSON.stringify(data)},
  34. dataType: 'json',
  35. cache: false,
  36. timeout: 50000,
  37. success: function(result){
  38. if (result.error === 0) {
  39. if (successCallback) {
  40. successCallback(result.data);
  41. }
  42. } else {
  43. alert('error: ' + result.message);
  44. if (errorCallback) {
  45. errorCallback(result.message);
  46. }
  47. }
  48. },
  49. error: function(jqXHR, textStatus, errorThrown){
  50. alert('url: ' + url +' error ' + textStatus + " " + errorThrown);
  51. if (errorCallback) {
  52. errorCallback();
  53. }
  54. }
  55. });
  56. },
  57. postRationLib: function (url, data, successCallback, errorCallback) {
  58. $.ajax({
  59. type:"POST",
  60. url: url,
  61. data: data,
  62. dataType: 'json',
  63. cache: false,
  64. timeout: 50000,
  65. success: function(result){
  66. if (!result.error) {
  67. if (successCallback) {
  68. successCallback(result.data);
  69. }
  70. } else {
  71. alert('error: ' + result.message);
  72. if (errorCallback) {
  73. errorCallback();
  74. }
  75. }
  76. },
  77. error: function(jqXHR, textStatus, errorThrown){
  78. alert('error ' + textStatus + " " + errorThrown);
  79. if (errorCallback) {
  80. errorCallback();
  81. }
  82. }
  83. });
  84. },
  85. postEx: function(url, params, dftTimeOutMilSec, isAsync, successCallback, failCallback, exceptionCallback){
  86. $.ajax({
  87. type:"POST",
  88. url: url,
  89. data: {'params': JSON.stringify(params)},
  90. dataType: 'json',
  91. cache: false,
  92. async: isAsync,
  93. timeout: dftTimeOutMilSec,
  94. success: function(result){
  95. if (!result.error) {
  96. if (successCallback) {
  97. successCallback(result.data);
  98. }
  99. } else {
  100. alert('error: ' + result.message);
  101. if (failCallback) {
  102. failCallback();
  103. }
  104. }
  105. },
  106. error: function(jqXHR, textStatus, errorThrown){
  107. alert('url: ' + url +', error: ' + textStatus + ", " + errorThrown);
  108. if (exceptionCallback) {
  109. exceptionCallback();
  110. }
  111. }
  112. });
  113. }
  114. };