全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解SpringBoot多跨域请求的支持(JSONP)

在我们做项目的过程中,有可能会遇到跨域请求,所以需要我们自己组装支持跨域请求的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小时内与您取得联系。