草稿里放了很久,把这个以前写的小项目捞出来。
项目开发:只写一部分
使用异步请求
(浏览器把请求交给代理对象—XMLHttpRequest(绝大多数浏览器都内置了这个对象),由代理对象向服务器发起请求,接收、解析服务器响应的数据,并把数据更新到浏览器指定的控件上。从而实现了页面数据的局部刷新。)
$(function () {
$('#_loginBtn').click(function () {
var val = $('#inputPassword').val();
if (/^1\d{10}$/g.test(val)) {
$.get(domainUrl + "/users/checkPhone", {phone:val}, function (data) {
if(!data){
//省略成功后操作,无非是隐藏、显示、传值
}else{
$('#inputPassword').next().text('手机号码已注册.').show()
}
})
} else {
$('#inputPassword').next().text('手机号码格式不正确').show()
}
});
});
@GetMapping("/checkPhone")
public Object checkPhone(String phone){
boolean ret = userInfoService.checkPhone(phone);
return ret;
}
/**
* 检查手机号码是否存在
* @param phone
* @return ture:手机号码存在 false:手机号码不存在
*/
boolean checkPhone(String phone);
@Override
public boolean checkPhone(String phone) {
//有值返回true
QueryWrapper<UserInfo> wrapper = new QueryWrapper<>();
wrapper.eq("phone", phone);
return super.getOne(wrapper) != null;
}
跨域请求
@Configuration
public class WebConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "PUT", "DELETE","OPTIONS")
.allowedHeaders("*")
.exposedHeaders("Header1", "Header2");
}
};
}
}
$('.vcode-send').click(function () {
if ($(this).hasClass('disabled')) {
} else {
var self = $(this);
var count = 10;
self.addClass('disabled')
self.text(count + '秒后重新获取')
var timer = setInterval(function () {
count--;
if (count > 0) {
self.text(count + '秒后重新获取');
} else {
clearInterval(timer)
self.text('重新获取验证码')
self.removeClass("disabled");
}
}, 1000);
如有错误,还请多多指教!
转载或者引用本文内容请注明来源及原作者:橘足轻重;