JSONP以及Spring对象MappingJacksonValue的使用方式
什么是JSONP?,以及Spring对象MappingJacksonValue的使用方式
原文: https://blog.csdn.net/weixin_38111957/article/details/81842460
一,引言
最近小编在写这样一套服务端的代码,说白了就是提供数据和处理一些业务逻辑。这个服务端是单独的一个工程,提供给PC端,移动端(IOS,Android)等多个终端进行调用。在调试过程中发现这样的一个异常,才了解到我们的JS请求是不能跨域请求的。为了考虑安全性的问题,JS只能访问相同域名,相同端口号的地址。但是JS能跨域请求JS,正好利用了这个因素,才有了JSONP这个解决方案。错误提示信息如下:
Failed to load http://127.0.0.1:8081/rest/itemcat/all?callback=category.getDataService: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8082' is therefore not allowed access.
二,什么是JSONP?
JSONP其实是解决JS跨域调用数据的一种方案,JS跨域直接请求数据是不可以的,但是JS跨域请求JS脚本是可以的。可以把返回的数据封装成一个JS脚本,把数据作为。参数传递到这个方法中,做一个方法的调用的js跨域请求可以得到此脚本数据,从而获取到想要到数据。执行流程如下:
三,JSONP使用方式
那使用JSONP请求服务端,那服务端该怎么返回数据呢看如下代码:
再给大家科普小知识:在使用RequestMapping注解的时候,也可以设置返回JSON数据的字符编码哟!
produce = MediaType.APPLICATION_JSON_VALUE +“; charset = utf-8“
在这只提供了服务端怎么写,具体JS怎么调用麻烦各位小伙伴自行学习下,因为调用是前端工程师写的,没源码给我,如果有小伙伴实在没找到,那就在评论区留言,小编回头找前端工程师要要哈哈!
- @RequestMapping(value = "/itemcat/all" ,produces = MediaType.APPLICATION_JSON_VALUE+";charset=utf-8")
- @ResponseBody
- public Object getItemCatList(String callback){
- //需要返回的数据
- CatResult itemCat = itemCatService.getItemCat();
- //callback 这个是js调用时传过来的参数,内容就是回调的方法名
- //第一种方式 ,把我们返回的数据转JSON后,然后拼接我们在js中定义的方法名,把json数据作为参数传递进去
- //返回 String
- /*String jsonStr = JsonUtils.objectToJson(itemCat);
- return callback + "("+jsonStr+");";*/
- //第二种方式,使用Spring自带对象,前提是需要在Srping4.0的版本才有的哟。
- //返回 Object
- MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(itemCat);
- mappingJacksonValue.setJsonpFunction(callback);
- return mappingJacksonValue;
JSONP以及Spring对象MappingJacksonValue的使用方式的更多相关文章
- Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域
Spring实现Ioc的多种方式 一.IoC基础 1.1.概念: 1.IoC 控制反转(Inversion of Control) IoC是一种设计思想. 2.DI 依赖注入 依赖注入是实现IoC的一 ...
- 【Spring】Spring之向 IOC 容器注入对象的三种方式
关于Spring的搭建可参见:浅析Spring框架的搭建.在测试之前还是应该先将环境配置好,将相关Jar包导进来.Spring创建的对象,默认情况下都是单例模式,除非通过scope指定. 向IOC容器 ...
- spring中创建bean对象的三种方式以及作用范围
时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...
- spring ioc三种注入方式
spring ioc三种注入方式 IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转 什么是控制反转? 控制反转是一种将组件依赖关系的创建和管理置于程序外部的技术. 由容 ...
- Spring学习总结(一)——Spring实现IoC的多种方式
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创 ...
- Spring MVC 前后端 Json 方式交互和处理
众所周知,在mvc中,数据是在各个层次之间进行流转是一个不争的事实. 而这种流转,也就会面临一些困境,这些困境,是由于数据在不同世界中的表现形式不同而造成的. 数据在页面上是一个扁平的,不带数据类 ...
- Spring实现IoC的多种方式
目录 一.使用XML配置的方式实现IOC 二.使用Spring注解配置IOC 三.自动装配 四.零配置实现IOC 五.示例下载 控制反转IoC(Inversion of Control),是一种设计思 ...
- spring配置datasource三种方式
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp34 spring配置datasource三种方式 1.使用org.spri ...
- spring实例化bean三种方式
我看了这篇博文<https://www.cnblogs.com/zhanglei93/p/6221546.html>,以及自己实践总结了关于spring实例化bean对象的3种方式. 一. ...
随机推荐
- Java学习笔记九:Java的循环跳转语句
Java的循环跳转语句 一:Java循环跳转语句之break: 生活中,我们经常会因为某些原因中断既定的任务安排.如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛.在 J ...
- 652. Find Duplicate Subtrees
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...
- 线程基础四 使用Monitor类锁定资源
前面我们讲过了lock的用法以及竞争条件导致的错误,实际上lock关键字是Monitor类用例的一个语法糖.如果我们分解使用了lock关键字的代码,将会看到它如下面代码片段所示: bool acqui ...
- P3388 【模板】割点
题目背景 割点 题目描述 给出一个n个点,m条边的无向图,求图的割点. 输入输出格式 输入格式: 第一行输入n,m 下面m行每行输入x,y表示x到y有一条边 输出格式: 第一行输出割点个数 第二行按照 ...
- shell重温---基础篇(函数操作)
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.shell中函数的定义格式如下: [ function ] funname [()] { action; [ret ...
- Hbase表格设计
Rowkey设计 Region: 基于RowKey的分区,可理解成MySQL的水平切分. 每个Region Server就是Hadoop集群中一台机器上的一个进程. 比如我们的有1-300号的RowK ...
- guacamole实现剪切复制
主要功能是实现把堡垒机的内容复制到浏览器端,把浏览器端的文本复制到堡垒机上. 借助一个中间的文本框,现将堡垒机内容复制到一个文本框,然后把文本框内容复制出来.或者将需要传递到堡垒机的内容先复制到文本框 ...
- Entity Framework + WCF 远程调用出错
在使用Entity Framework中使用WCF,在程序中调用服务一直报错,我一直以为是WCF的哪个地方的配置有问题,找来找去,一直没有解决. 最后在网上找到一篇文章 ...
- .NET基础知识之八——深拷贝,浅拷贝
目录 1.概念 2.使用赋值符号"=" 3.浅复制 4.深复制 5.问题一:如果类里面嵌套有多个类,然后嵌套类里面又嵌套类,那么像上面实现深拷贝的方法还能用吗? 6.问题二:实现深 ...
- OpenCV入门:(五:更改图片对比度和亮度)
1. 理论 图片的转换就是将图片中的每个像素点经过一定的变换,得到新像素点,新像素点组合成一张新的图片. 改变图片对比度和亮度的变换如下: 其中α和β被称作增益参数(gain parameter)和偏 ...