通过电子邮件激活注册用户模块。几乎所有事情都已完成,但我在浏览器中遇到错误(在开发人员工具模式下):
未捕获的SyntaxError:无效或意外的令牌 确认login=zzheads@gmail.com& confirmString = $ 2A $ 10 $ NVCbcrmlsLeM6A31HxJOqOCzfOgUno6PJ5uN3XflUZkQ.r ...:694
何时再次发送激活链接'功能。 我有MailAPI方法:
@RequestMapping (path = "/sendagain", method = RequestMethod.POST, produces = "application/json")
@ResponseBody public String sendMailAgain (@RequestBody String email) {
Gson gson = new Gson();
User user = userService.findByName(email);
if (user != null) {
String confirm = passwordEncoder.encode(user.getId().toString() + user.getUsername() + user.getPassword());
String body = EmailTemplate.getHtmlCode(user.getUsername(), confirm);
MailApi.sendMail(user.getUsername(), "www.zdelivery.ru", body, "Пожалуйста активируйте ваш аккаунт на сайте zdelivery.ru");
return (gson.toJson("success"));
}
return gson.toJson("failure");
}
我的login.html的一部分,我再次建议用户发送激活链接:
<div th:if="${emailAgain==true}" class="container">
<div class="row col s12">
<div class="row col s8 offset-s2 white z-depth-3">
<div class="row center teal-text text-darken-2">
<h5 th:text="@{'Послать еще раз ссылку активации аккаунта '+${username}}"></h5>
</div>
<div class="row">
<div class="input-field col s6 offset-s3">
<p>
Для отправки письма со ссылкой активации аккаунта нажмите кнопку ниже:
</p>
</div>
</div>
<div class="row center">
<br/>
<button class="waves-effect waves-light btn" th:onclick="@{'emailAgain('+${username}+')'}"><i class="material-icons right">send</i>Отправить</button>
<br/>
</div>
</div>
</div>
</div>
和我的JavaScript emailAgain函数:
function emailAgain (email) {
console.log("emailAgain "+email);
$.ajax({
url: "/sendagain",
type: "POST",
dataType: "json",
contentType: "application/json",
data: JSON.stringify(email, null, "\t"),
headers: {"X-CSRF-Token": $("meta[name='_csrf']").attr("content")},
success: function (result) {
console.log(result);
// $registrationForm.children().remove();
// $registrationForm.append(showConfirm(email));
},
error: getErrorMsg
});
}
但当我按下按钮&#34; emailAgain&#34;它不会调用函数,只是浏览器上面显示的错误信息。
什么&#34;令牌&#34;它在说什么? 如何解决?
更新没有任何服务器端错误。 我确定_csrf令牌存在问题。 用户加载页面来自电子邮件,因此该请求不包含正确的_csrf令牌。禁用整个应用程序的_csrf防御不是一个选项。 如何在没有_csrf的情况下启用请求单页?