在我们做项目的过程中,有可能会遇到跨域请求,所以需要我们自己组装支持跨域请求的JSONP数据,而在4.1版本以后的SpringMVC中,为我们提供了一个AbstractJsonpResponseBodyAdvice的类用来支持jsonp的数据(SpringBoot接收解析web请求是依赖于SpringMVC实现的)。下面我们就看一下怎么用AbstractJsonpResponseBodyAdvice来支持跨域请求。

使用AbstractJsonpResponseBodyAdvice来支持跨域请求很简单,只需要继承这个类就可以了。具体代码如下:
package com.zkn.learnspringboot.config;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice;
/**
* Created by wb-zhangkenan on 2016/12/1.
*/
@ControllerAdvice(basePackages = "com.zkn.learnspringboot.web.controller")
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice{
public JsonpAdvice() {
super("callback","jsonp");
}
}
下面我们写个类来测试一下:
package com.zkn.learnspringboot.web.controller;
import com.zkn.learnspringboot.domain.PersonDomain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by wb-zhangkenan on 2016/12/1.
*/
@RestController
@RequestMapping("/jsonp")
public class JsonpTestController {
@Autowired
private PersonDomain personDomain;
@RequestMapping(value = "/testJsonp",produces = MediaType.APPLICATION_JSON_VALUE)
public PersonDomain testJsonp(){
return personDomain;
}
}
当我们发送请求为:http://localhost:8003/jsonp/testJsonp的时候,结果如下:
当我们发送的请求为:http://localhost:8003/jsonp/testJsonp?callback=callback的时候,结果如下所示:
看到区别了吗?当我们在请求参数中添加callback参数的时候,返回的数据就是jsonp的,当我们请求参数中不带callback的时候,返回的数据是json的。可以让我们方便的灵活运用。下面再奉上一个jsonp的完整案例。
前台页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="resources/js/jquery-2.1.4.min.js" type="text/javascript"></script>
</head>
<body>
<input type="button" value="测试jsonp请求" onclick="testJsonp()" />
<script type="text/javascript">
function testJsonp() {
$.ajax({
type:'get',
url:'http://localhost:8003/jsonp/testJsonp',
dataType:'jsonp',
jsonp:"callback",
success:function (data) {
alert(data.userName+" "+data.passWord);
},
error:function (err) {
alert('出现错误了!!!');
}
});
}
</script>
</body>
</html>
后台代码1:
package com.zkn.learnspringmvc.news.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created by zkn on 2016/12/3.
*/
@Controller
public class JsonpTestController {
@RequestMapping("testJsonp")
public String testJsonp(){
return "jsonp";
}
}
下面我们发送请求如下:http://localhost:8080/LearnSpringMvc/testJsonp
当我们点击测试jsopn请求这个按钮的时候,效果如下:
我们成功的实现了一个跨越的请求。更详细的请求信息如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring
# boot
# 跨域请求
# 跨域
# 跨域访问
# vue+springboot前后端分离实现单点登录跨域问题解决方法
# vue+springboot实现项目的CORS跨域请求
# Springboot跨域问题三种解决方案
# 解决SpringBoot跨域的三种方式
# SpringBoot跨域问题的五种解决方式
# SpringBoot实现全局和局部跨域的两种方式
# 当我们
# 让我们
# 而在
# 很简单
# 只需要
# 所示
# 就看
# 不带
# 奉上
# 大家多多
# 就可以
# 过程中
# 出现错误
# 测试一下
# 实现了
# 依赖于
# basePackages
# controller
# method
# mvc
相关文章:
专业公司网站制作公司,用什么语言做企业网站比较好?
南京网站制作费用,南京远驱官方网站?
建站之星后台密码如何安全设置与找回?
宁波自助建站系统如何快速打造专业企业网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
小型网站制作HTML,*游戏网站怎么搭建?
如何制作网站标识牌,动态网站如何制作(教程)?
定制建站如何定义?其核心优势是什么?
建站之星后台密码遗忘?如何快速找回?
如何通过网站建站时间优化SEO与用户体验?
中山网站推广排名,中山信息港登录入口?
如何访问已购建站主机并解决登录问题?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
建站之星安装后如何配置SEO及设计样式?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站168自助建站系统:快速模板定制与SEO优化指南
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
网站制作报价单模板图片,小松挖机官方网站报价?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何用wdcp快速搭建高效网站?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
子杰智能建站系统|零代码开发与AI生成SEO优化指南
建站之星好吗?新手能否轻松上手建站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
建站之星价格显示格式升级,你的预算足够吗?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
小型网站建站如何选择虚拟主机?
济南企业网站制作公司,济南社保单位网上缴费步骤?
C++如何编写函数模板?(泛型编程入门)
如何高效搭建专业期货交易平台网站?
焦点电影公司作品,电影焦点结局是什么?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
电商网站制作公司有哪些,1688网是什么意思?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
如何挑选高效建站主机与优质域名?
宁波免费建站如何选择可靠模板与平台?
如何快速搭建支持数据库操作的智能建站平台?
如何获取免费开源的自助建站系统源码?
教学论文网站制作软件有哪些,写论文用什么软件
?
公司网站的制作公司,企业网站制作基本流程有哪些?
西安大型网站制作公司,西安招聘网站最好的是哪个?
已有域名如何快速搭建专属网站?
TestNG的testng.xml配置文件怎么写
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
股票网站制作软件,网上股票怎么开户?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
图册素材网站设计制作软件,图册的导出方式有几种?
*请认真填写需求信息,我们会在24小时内与您取得联系。