GoogleのreCaptchaを使用して、フォーム検証でキャプチャを処理しようとしています。基本的に、フォーム タグで onSubmit を使用して検証関数が呼び出され、recaptcha API を操作する 2 番目の関数が呼び出されます。
コードは次のとおりです。
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;
}
});
Firefox で LiveHTTPHeaders を使用すると、リクエストがサービスに送信され、すべてが正しく送信されていることがわかります。HTTP/1.1 200 OK 応答が返されますが、コードがエラー関数になるたびに. エラー関数が実行されると、jqXHR は次のようになります。
オブジェクト { readyState=0, status=0, statusText="エラー"}
textStatus は「エラー」、errorThrown は「」
$.POST を含め、.done()、.fail()、.always() を使用して、これをさまざまな方法で実行しようとしましたが、常に同じように動作します。
ここでクロスドメインリクエストの問題に関係する他の投稿を見てきましたが、実際にクロスドメインリクエストを行っているため、これらの状況はどれも実際には関連していないようです。同じドメイン上のファイルにリクエストを送信すると、クロスドメイン リクエストとして誤って処理されていました。
私はここで機知に富んでいます..どんな助けでも大歓迎です。