如何处理响应中的ajax错误。

时间:2015-02-06 22:41:44

标签: javascript jquery ajax

我有一个单页订购表单。用户填写我们的表单,javascript验证所有内容,如果它通过ajax请求将命中服务器并在点击提交时通过Stripe向客户收费。

如果收费成功,json将返回到ajax请求({success:true})。然后,用户被重定向到成功页面,或者如果在为卡充电时发生了某些事情,则会显示错误。

我正在尝试处理用户请求命中服务器的(罕见)问题,用户成功收费,但在响应时用户收到错误(很可能是移动/不稳定连接上的超时错误)。如何防止用户被双重收费?下面是我的ajax请求,但也许我需要重新考虑我的整个基础架构?

$.ajax({ type : 'POST',
url      : '/order',
data     : $(':input').serialize(),
timeout  : 30000,
dataType : 'json',
success : function (data) {

  // redirect user to success page
  window.location = '/completed';

},
error: function(xhr,status,error) {

  // report the error to user. 

} });

1 个答案:

答案 0 :(得分:0)

试试这个..

$.ajaxSetup({ 
type     : 'POST',
url      : '/order',
data     : $(':input').serialize(),
timeout  : 30000,
dataType : 'json',
success : function (data) {

  // redirect user to success page
  window.location = '/completed';

},
error: function(xhr,status,error) {

  if (xhr.status == 408) {//For Timeout
                alert("Sorry, Request timeout.!");
                window.location.href ="//specify a redirect url//";
            }
            else {
                alert("An error occurred: " + status + "nError: " + error);
            }

} });