Я пытаюсь обработать капчу при проверке формы с помощью Google reCaptcha. По сути, моя функция проверки вызывается с помощью onSubmit в теге формы, а затем вызывает вторую функцию для работы с recaptcha api.
Вот код:
var returnValue;
var myData = {
privatekey : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
remoteip : ip,
challenge : challenge,
response : response
};
$.ajax({
url: "http://www.google.com/recaptcha/api/verify",
type: "POST",
data: JSON.stringify(myData),
dataType: "text",
success: function(data) {
var result = data.split("\n");
if (result[0] == "true") {
returnValue = true;
}
else {
returnValue = false;
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert("There was an error submitting the captcha. Please contact an administrator. \n\nError:\n" + textStatus, errorThrown);
returnValue = false;
},
complete: function(jqXHR, textStatus) {
return returnValue;
}
});
Используя LiveHTTPHeaders в Firefox, я вижу, что запрос отправляется в службу, и похоже, что все отправляется правильно. Я получаю ответ HTTP/1.1 200 OK, но каждый раз код переходит к функции ошибки. Когда функция ошибки запускается, jqXHR:
Объект {readyState=0, status=0, statusText="ошибка"}
textStatus — «ошибка», а errorThrown — «»
Я пытался сделать это несколькими способами, включая $.POST и используя .done(), .fail(), .always(), и он всегда ведет себя одинаково.
Я видел здесь некоторые другие публикации, связанные с проблемами с междоменными запросами, но ни одна из этих ситуаций не кажется актуальной, потому что я на самом деле выполняю междоменный запрос, и это, казалось, были проблемы там, где они были делал запросы к файлу в том же домене, и он неправильно обрабатывался как междоменный запрос.
Я в своем уме здесь .. любая помощь будет принята с благодарностью.
I've tried doing this a number of ways, including $.POST, and using .done(), .fail(), .always(), and it always behaves the same.
Эти 3 метода служат той же цели, что и ошибка, успех и завершение. Функционально теперь должна быть разница, за исключением того, что теперь они предпочтительнее при подготовке к успеху, ошибке и завершению, которые в соответствии с документацией будут признаны устаревшими в будущем. - person Nope   schedule 09.10.2012