私はreCAPTCHAを 例 に示すように実装しました。
このスクリプトはhead
タグにあります。
<script src="https://www.google.com/recaptcha/api.js"></script>
私のHTMLのform
には、次のものがあります。
<div class="g-recaptcha" data-sitekey="my public sitekey here"></div>
しかし、form
をロードすると、このエラーが発生します。
エラー:サイトキーのドメインが無効です
これがドメインの正しいサイトキーであることを確認しました。
コードは現在サブドメインにあるので、おそらくそれが問題だと思ったので、Google reCAPTCHA管理者にサブドメインを追加しましたが、それでもエラーが発生します。
まったく同じコードが別のドメイン(そのドメインに固有のキーを持つ)で100%機能します。
問題は何でしょうか。
誰かが同様の問題を抱えている場合。機能していなかったキーを削除し、自分のドメイン用の新しいキーを取得しました。そしてこれはrecaptcha管理領域で明示的にそれらを指定する必要なしに同様に今や私のすべてのサブドメインでも動作します。
まず第一に、鍵は https://www.google.com/recaptcha/admin#list で管理されています
いくつかの異なるドメインで同じキーを使用していて、そのキーにドメインの1つを追加するのを忘れていたため、このエラーに遭遇しました。
私のサイトを追加した後、物事が再び正常に機能するようになるまでに1、2分かかりました(おそらくキャッシュが原因です)。
ブラウザ上のサイトデータを消去するだけで新しいキーを作成する必要はありません
サイトドメインを変更した場合は、そのドメインを既存のキーに追加し(新しいものを作成する必要はありません)、それを保存します。
https://www.google.com/recaptcha/admin#list
しかし、Google recaptureはブラウザ上でいくつかのデータを持っています。それらをクリアしてください。そうすればあなたの新しいドメインでうまくいくでしょう
私はそれを解決したのと同じ問題を抱えていた。 https://www.google.com/recaptcha/admin にアクセスしてドメインをクリックし、下部にある主要な設定に移動しました。
そこで私は以下のオプションを無効にしましたドメイン名検証reCAPTCHAソリューションの起源を確認します
保存をクリックすると、キャプチャが機能し始めました。
これはサーバーの設定方法と関係があると思います。私は共有ホスティングをしていて、LiquidwebからDeluxehostingへ(前者は後者へ彼らの共有ホスティングを売却したため)予告なしに移管され、そして多くの問題を抱えています。これは、Googleがサーバーをチェックしているが、私のドメインではなく共有サーバー名として識別されていると考えられます。 「原点の確認」のチェックを外すと動作し始めます。これが当分の間問題を解決するのを助けることを願っています。
私のrecaptchaキーが127.0.0.1に登録されていたとき、私はユニットテスト中にlocalhostを使用していました。それで私は私のブラウザを127.0.0.1を指すように変更し、それは働き始めました。 ReCaptchaキー設定のドメインの一覧に "localhost"を追加することはできましたが、それでもlocalhostを使用して単体テストすることはできません。ループバックIPアドレス127.0.0.1を使用する必要があります。
誤って秘密鍵を公開鍵に使用した可能性があります。
90%の問題を解決するキーを再生成する前に注意が必要な点がもう1つあります。
例えばあなたのxamppディレクトリはC:\ xamppです。
htdocsフォルダはC:\ xampp\htdocsです。
example-cap.htmlというページを開き、ページに「サイトキーのドメインが無効です」というエラーが表示されている
次のようなブラウザアドレスであなたのローカルホストアドレスを使用してください:
localhost/example-cap.html
これで問題は解決します
アドレスを使用しないc:\ xampp\htdocs\example-cap.htmlこれによりエラーが発生します
httpおよびhttpsなしでドメインを追加してください。 www.abc.comのように
私はこの問題にも遭遇しました、そして私の解決策は私が選択したバージョンのために適切なクライアントコードを統合していたことを確かめることでした。
私の場合は、reCAPTCHA v3を選択しましたが、v2用のクライアント統合コードを使用していました。
V3はこのようになります:
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
...
});
});
</script>
V2コードは次のようになります。
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>
あなたがどのバージョンを持っているかに関しては、これはあなたがあなたのreCAPTCHAアカウントセットアップの始めに決めたものになるでしょう。
私にとっては、「Key Settings」の欄に実際のドメイン名を入力するのを忘れていました。ここでDomainsと表示されています(1行に1つ)。
あなたのドメインを設定する必要があります:www.abi.wapka.mobi
、それはあなたがWAPKAサイトを使用している場合です。
もしあなたがwapkaを持つドメインを持っていたならそれは機能しないことに注意してください、それであなたのサイトプロバイダーとwapkaを比較しそれをテキストにしてください。
私のドメインはかなり複雑でした。 window.location.Host
によって返された値を開発者コンソールに取り、その値をrecaptcha adminホワイトリストに貼り付けました。その後、キャッシュをクリアしてページをリロードしました。
私はこれで4時間近く試してみました、そして最後にここからの指導でそれを考え出しました、私はあなたと私の解決策を共有すると思いました。
わかりましたので私のドメインはアドオンドメインです。 「サイト所有者のエラー:サイトキーのドメインが無効です」というメッセージも表示されました。デスクトップのショートカットで考えるまで、すべてがほぼ1000回正しいことを確認しました。
Solution:
そのため、アドオンドメインの場合は、親URLがドメインのリストにも含まれていることを確認します(例:[ADDON DOMAIN]。[PARENT DOMAIN] .com)。アドオンの場所はホスト上で設定したフォルダになるので、アドオンドメインを使用するときは必ずルートに論理的な名前を付けてください。
これが他の人に役立つことを願っていますし、提案の人々に感謝します。
私は私がレンダリングパラメータを表示するのを忘れたという事実のために同様の問題を抱えていました
<script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY' async defer></script>