Jquery AJAX调用pylons在相同的请求上间歇性地失败

时间:2011-08-31 05:49:08

标签: ajax jquery pylons

我正在创建一个像这样的ajax调用:

  var form = $("#form");
  $.ajax({url: "/url/create_web_registration?invite_token=abc",
          data: form.serialize(),
          type: "POST",
          dataType: "json",
          success: $.web_registration.index.registerSubmitSuccess,
          error: $.web_registration.index.registerSubmitError,
  });

但是,当我使用相同的参数重复请求时,我有时会获得成功回调,有时会得到错误回调。调用错误回调时,jqXHR.status在失败时始终为0,但statusText,responseText,textStatus或errorThrown中没有任何描述。

我对HTTP请求执行了tcpdump,请求如下:

POST /shopkick/v1/user/create_web_registration?invite_token=abc HTTP/1.1
Host: [redacted]:5000
Connection: keep-alive
Referer: http://[redacted]:5000/wr2/abc?invite_token=&zip_code=94123&phone_number=%2B16785556982&facebook-form=
Content-Length: 169
Origin: http://[redacted]:5000
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

invite_token=&zip_code=94123&phone_number=%2B16785552982

回复如下:

HTTP/1.0 200 OK
Server: PasteWSGIServer/0.5 Python/2.6.1
Date: Wed, 31 Aug 2011 05:34:10 GMT
Pragma: no-cache
Cache-Control: no-cache
Content-type: text/plain
Content-Length: 74

{"error_message": "Facebook account already registered", "success": false}

我不知道为什么它有时会成功,有时会失败。

1 个答案:

答案 0 :(得分:0)

问题是我使用ajax提交表单。当我单击提交按钮时,它可以正常工作,但是当我在文本输入字段中按Enter键时,它会遇到错误。显然在输入字段中输入是导致表单提交两次。修复是设置onsubmit =“return false;”用于防止双重提交的表单。