2017-01-16 98 views
2

我近来应用在我的网站一种无形的谷歌验证码,但它显示Unexpected Error: Invalid token=当我使用下面的代码时:JavaScript错误:无效令牌使用的reCAPTCHA API

<script src="https://www.google.com/recaptcha/api.js" async defer></script> 
<script> 
    function onSubmit = function(token) { 
     document.getElementById("admin-login").submit(); 
    } 
</script> 

我有一个formbutton如下:

<button data-sitekey="My Site Key" data-callback='onSubmit' class="btn btn-default submit g-recaptcha" name="login">Log in</button> 

任何帮助表示赞赏,谢谢。

+2

'var onSubmit = function ...'not'function onSubmit = function ...'如果你想创建一个变量是一个函数。如果你只是想定义一个函数,'function onSubmit(token){...}'就足够了 – mhodges

回答

5

function onSubmit = function(token) {不正确。

它需要

var onSubmit = function(token) {

<script src="https://www.google.com/recaptcha/api.js" async defer></script> 
<script> 
    var onSubmit = function(token) { 
    document.getElementById("admin-login").submit(); 
    } 
</script> 

JavaScript允许不同的方法来创建一个函数。如果你仔细阅读以下内容会更好。

1.函数声明

function onSubmit(){ }

2.功能表达

var onSubmit = function(){ }

3.箭头功能
([params]) => { //function Body }

4.发电机功能(更多高级)
function* generatorFunction(){ yield 5; }

+0

@Webmaster提出另一个问题并在这里发布一个链接,我们将看看 – mhodges

+0

@Webmaster,如果你已经有另一个问题,你应该把它作为另一个问题 - 请不要试图在评论中问/回答单独的问题,因为这不是它的地方。 –

1

那么,有两种方法可以创建/声明函数:

function onSubmit(token) { 
    document.getElementById("admin-login").submit(); 
} 

var onSubmit = function(token) { 
    document.getElementById("admin-login").submit(); 
}; 

你有点混在一起。