Я использую Google reCaptcha v3. Я пытаюсь реализовать это на своей странице aspx. Когда я сначала загружаю свою страницу, я могу получить токен обратно. Однако, когда я нажимаю на кнопку, чтобы обработать мою страницу, она возвращается с «Нет выхода клиентов reCaptcha».
Я сделал поиск в Google для этого, и ничего не пришло, чтобы решить мою проблему. Как я могу проверить взаимодействие человека или бота?
вот что у меня на странице aspx:
<div id="RegistrationForm">
<input type="text" id="FirstName" runat="server" value="" valtype="required" maxlength="150" />
<input type="text" id="LastName" runat="server" value="" valtype="required" maxlength="150" />
<input runat="server" id="Email" type="text" value="" valtype="required;regex:email" maxlength="350"/>
<input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"/> <br />
<div class="g-recaptcha" data-sitekey="SiteKey" data-callback="submit"></div>
<input id="btnProcessOrder" type="button" name="ProcessOrder" onclick="confirmed = false;capt();" value="Save" />
</div>
Это то, что я пытался
<script src="https://www.google.com/recaptcha/api.js?render=SiteKey"></script>
<script type="text/javascript">
//so when i load the page it gets my token and i can assign the value to g-recaptcha-response
grecaptcha.ready(function() {
grecaptcha.execute('SiteKey', { action: 'homepage' }).then(function (token) {
console.log(token);
document.getElementById('g-recaptcha-response').value = token;
});
});
Then when i try to verify the response as follows i get the error or it just does nothing:
function capt() {
var response = grecaptcha.getResponse();
$.ajax({
type: "POST",
url: 'https://www.google.com/recaptcha/api/siteverify',
data: {"secret" : "SecretKey", "response" : response, "remoteip":"localhost"},
contentType: 'application/x-www-form-urlencoded',
success: function(data) { console.log(data); }
});// i call this function on my button
}
</script>
Большая часть кода, который я нашел, предназначена для php, и я не могу это использовать. Как мне заставить это работать правильно ?.
Ваш ответ высоко ценится