前台页面
layer弹窗引入
<script src="layer/layer.js"></script>
<script src="layer/extend/layer.ext.js"></script>
<link href="layer/skin/default/layer.css" rel="stylesheet">
<link href="layer/skin/layer.css" rel="stylesheet">
<link href="layer/skin/layer.ext.css" rel="stylesheet">
ajax获取跨域结果
附上W3C的ajax介绍:http://www.w3school.com.cn/jquery/ajax_ajax.asp
jsonpCallback 类型:String
为 jsonp 请求指定一个回调函数名。这个值将用来取代 jQuery 自动生成的随机函数名。这主要用来让 jQuery 生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存 GET 请求的时候,指定这个回调函数名。
//使用ajax提交表单数据
$.ajax({
type: 'get',
async: false,
url: 'testUrl',
dataType: 'jsonp',
data: $form.serialize(),
jsonp: 'callback',
jsonpCallback: 'successCallback',
success: function (result) {
layer.msg(result.message, {icon: 6, shade: 0.5, time: 4000 });
window.setTimeout(function () { window.location.href = "testUrl.html";}, 2000);
},
error: function (result) {
layer.msg("系统出错,请联系管理员!", {icon: 5, shade: 0.5, time: 4000 });
}
});
后台处理代码
需要注意的是:Jsonp的返回类型:回调函数名+(+json+);
因为返回的是一个函数,在jQuery里面需要以分号结尾
@ResponseBody
@RequestMapping(value = "web")
public String web(HrmExam hrmExam, Model model, HttpServletRequest request) {
JSONObject json = new JSONObject();
try {
hrmExamService.save(hrmExam);
json.put("message", "感谢填写,我们已经收到您的测试结果!");
return ("successCallback("+json.toString()+");");
} catch (Exception e) {
json.put("message", "提交出现问题,请确认无误后提交入会员问题请联系管理员!");
return ("successCallback("+json.toString()+");");
}
}