Я создаю вызов 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.
Я сделал tcpdump для HTTP-запросов, и запрос выглядит так:
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}
Я в недоумении, почему иногда это удается, а иногда - нет.