Jsonp跨域

前台页面

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()+");");
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值