【发布时间】:2021-10-22 04:45:24
【问题描述】:
我正在使用 SvelteKit 开发一个静态网站,以获得我的第一个 svelte 方法。我几乎让一切都按预期工作。 除了联系表单上的验证码保护之外的所有内容。
我可以获取 recaptcha 令牌,但是在将它传递给 formData 请求时我丢失了它。 我的相关代码是:
<script lang="ts">
import * as yup from "yup";
import {createForm, ErrorMessage} from "svelte-forms-lib";
...
function getCaptcha(){
grecaptcha.ready(function () {
grecaptcha.execute('recaptcha-key', { action: 'contactForm' })
.then(function (token) {
console.log(token) // here I get the token
return token;
});
});
}
const sendMail= (values)=>
{
const url = '/sendmail.php';
const formData = new FormData();
let token = getCaptcha();
console.log('token: '+token); // here token is null
formData.append("token", token);
fetch(url, {
method: 'post',
body: formData,
})
.then(function (response) {
console.debug(response.status)
})
.catch(function (e) {
sendError = true;
console.debug(e);
});
}
</script>
表单提交工作正常,但很明显,recaptcha 令牌除外。
感谢任何关于如何解决它的想法。
【问题讨论】:
标签: javascript recaptcha sveltekit