ReCAPTCHA 错误: 站点密钥的域无效

我已经按照 例子所示实现了 reCAPTCHA。

我在 head标签中有这个脚本:

<script src="https://www.google.com/recaptcha/api.js"></script>

在我的超文本标记语言 form中,我有:

<div class="g-recaptcha" data-sitekey="my public sitekey here"></div>

但是当我加载 form时,我得到这个错误:

错误: 站点密钥的域无效

我已经确认,这是我的域名正确的网站关键。

当前的代码是在一个子域,所以我认为可能是这个问题,所以我也添加了子域的谷歌 reCAPTCHA 管理员,但仍然得到了错误。

完全相同的代码在不同的域中100% 地工作(使用特定于该域的密钥)。
有什么问题吗?

368745 次浏览

In case someone has a similar issue. My resolution was to delete the key that was not working and got a new key for my domain. And this now works with all my sub-domains as well without having to explicitly specify them in the recaptcha admin area.

I was using localhost during unit testing when my recaptcha key was registered to 127.0.0.1. So I changed my browser to point to 127.0.0.1 and it started working. Although I was able to add "localhost" to the list of domains in my ReCaptcha Key Settings, I am still unable to unit test using localhost. I have to use the loopback IP address 127.0.0.1.

There is another point must be noted before regenerating keys that resolve 90% issue.

for example your xampp directory is C:\xampp
and htdocs folder is C:\xampp\htdocs

we want to open page called: example-cap.html
and page is showing error:

invalid domain for site key

Use your localhost address in browser address like:

localhost/example-cap.html

this will resolve your issue

Do not use address c:\xampp\htdocs\example-cap.html
this will generate error

You may have inadvertently used a private key for a public key.

You should set your domain for example: www.abi.wapka.mobi, that is if you are using a wapka site.

Note that if you had a domain with wapka it won't work, so compare wapka with your site provider and text it.

First of all, the keys are managed at https://www.google.com/recaptcha/admin#list

I ran into this error because I'm using the same key on a few different domains and I had forgotten to add one of the domains to the key.

After adding my site it took a minute or two (most likely because of cache) for things to work normally again.

No need to create a new key just clear site data on browser

If you change your site domain then add that domain to existing key (it's not necessary to a create new one) and save it.

https://www.google.com/recaptcha/admin#list

but google recapture has some data on browser. Clear them then it will work with your new domain enter image description here

I had the same problems I solved it. I went to https://www.google.com/recaptcha/admin and clicked on the domain and then went to key settings at the bottom.

There I disabled the the option below Domain Name Validation Verify the origin of reCAPTCHA solution

clicked on save and captcha started working.

I think this has to do with way the server is setup. I am on a shared hosting and just was transferred without notice from Liquidweb to Deluxehosting(as the former sold their share hosting to the latter) and have been having such problems with many issues. I think in this case google is checking the server but it is identifying as shared server name and not my domain. When i uncheck the "verify origin" it starts working. Hope this helps solve the problem for the time being.

For me, I had simply forgotten to enter the actual domain name in the "Key Settings" area where it says Domains (one per line).

I tried for almost 4 Hours with this and finally figuring it out with guidance from here, I thought I would share my solution with you.

Ok so my domain is an addon domain. I also got "ERROR for site owner: Invalid domain for site key" I had checked that everything was correct almost a thousand times and it looked right to me, until I thought of it in terms of a desktop shortcut.

Solution:

So for an addon domain make sure that the parent url is also in the list of domains i.e: [ADDON DOMAIN].[PARENT DOMAIN].com . The addon location will be the folder that you set on your host so when using addon domains ensure to name the root with something logical.

Hope this helps someone else and thanks for the suggestions people.

Make sure you fill in your domain name and it must not end with a path.

example

http://yourdomain.com (good)

http://yourdomain.com/folder (error)

I guess the quickest way is just to disable the domain check while you're developing it enter image description here

I had a similar problem due to the fact that I forgot to show the render parameter

<script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY' async defer></script>

I ran into this issue also and my solution was to verify I was integrating the appropriate client code for the version I had selected.

In my case, I had selected reCAPTCHA v3 but was taking client integration code for v2.

V3 looks like this:

<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 code looks like this:

<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>

As for which version you have, this will be what you decided at the start of your reCAPTCHA account setup. enter image description here

I had the same problems. I solved it: I went to https://www.google.com/recaptcha/admin, clicked on the domain and then went to key settings at the bottom.

There I disabled the option below Domain Name Validation Verify the origin of reCAPTCHA solution.

Clicked on save and captcha started working.

Try to add domains without http:// and https:// e.g. example.com

My domain was quite complex. I took the value returned by window.location.host in the developer console and pasted that value in the recaptcha admin white list. Then I cleared the cache and reloaded the page.