Spring 跨域请求
1.Jsp的跨域请求
后台jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String callback = request.getParameter("callback");
out.print(callback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}]);");
out.print(callback);
%>
前端代码1:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String callback = request.getParameter("callback");
out.print(callback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}]);");
out.print(callback);
%>
前端代码2:
<script type="text/javascript">
$.getJSON("http://localhost:8080/Jsonp/jsonp.jsp?callback=?", function(json){
alert(json[0].name);
});
</script>
2.Spring 的跨域请求
下面给出一个Controller的例子;
/**
* 获取单位信息列表json
* 注意这里把@ResponseBody 去掉了
*/
@RequiresPermissions("sys:unitnew:view")
@RequestMapping(value = "jsonp")
public void getListaa(HttpServletRequest request,HttpServletResponse response, Model model,
@RequestParam(value = "pageNumber", defaultValue = PAGE_NO) int pageNumber,
@RequestParam(value = "pageSize", defaultValue = PAGE_SIZE) int pageSize) {
try { PageHelper.startPage(pageNumber, pageSize, true);
Map<String, Object> params = builderParams(request, model);
params.put("queryCondition", " AND deleted != 1 ");
List<AssistantUnit> result = manger.findByParams(params);
System.out.println("获取单位信息json:result:" + result.size());
PageUtils<AssistantUnit> page = new PageUtils<AssistantUnit>(result); String aaa = JsonUtil.pojo2json(page);// 这个是把序列化
String callback = request.getParameter("callback");
//response.getWriter().print(callback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}]);");
response.getWriter().print(callback+"(["+aaa+"]);");
response.getWriter().print(callback); } catch (Exception e) {
logger.warn("获取单位信息信息异常:", e);
} }
前端调用:
下面是调用的地方:
这个在Load里面: addScriptTag('http://192.168.1.103:8080/aaaaa-web/unit/jsonp?callback=dosomething');
function addScriptTag(src) {
var script = document.createElement('script');
script.setAttribute("type","text/javascript");
script.src = src;
document.body.appendChild(script);
}
function dosomething(data) {
console.log(data[0].endRow);
console.log('Your public IP address is: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
console.log('Your public IP address is: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
};
Spring 跨域请求的更多相关文章
- Ajax+Spring MVC实现跨域请求(JSONP)JSONP 跨域
JSONP原理及实现 接下来,来实际模拟一个跨域请求的解决方案.后端为Spring MVC架构的,前端则通过Ajax进行跨域访问. 1.首先客户端需要注册一个callback(服务端通过该callba ...
- Ajax+Spring MVC实现跨域请求(JSONP)(转)
背景: AJAX向后台(springmvc)发送请求,报错:已阻止交叉源请求:同源策略不允许读取 http://127.0.0.1:8080/DevInfoWeb/getJsonp 上的远程资源.可 ...
- Spring Boot Web应用开发 CORS 跨域请求支持:
Spring Boot Web应用开发 CORS 跨域请求支持: 一.Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等CORS与JSONP相比 1. JSONP只能实现 ...
- Ajax+Spring MVC实现跨域请求(JSONP)
背景: AJAX向后台(springmvc)发送请求,报错:已阻止交叉源请求:同源策略不允许读取 http://127.0.0.1:8080/DevInfoWeb/getJsonp 上的远程资源.可 ...
- Spring处理跨域请求
[nio-8080-exec-8] o.s.web.cors.DefaultCorsProcessor : Skip CORS processing: request is from s ...
- spring boot跨域请求访问配置以及spring security中配置失效的原理解析
一.同源策略 同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 什么是源 源[orig ...
- Spring Boot + Vue 跨域请求问题
使用Spring Boot + Vue 做前后端分离项目搭建,实现登录时,出现跨域请求 Access to XMLHttpRequest at 'http://localhost/open/login ...
- CORS跨域请求规则以及在Spring中的实现
CORS: 通常情况下浏览器禁止AJAX从外部获取资源,因此就衍生了CORS这一标准体系,来实现跨域请求. CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origi ...
- Spring 完美配置跨域请求
在SpringBoot2.0 上的跨域 用以下代码配置 即可完美解决你的前后端跨域请求问题 import org.springframework.context.annotation.Bean; im ...
随机推荐
- Windows 64位操作系统的ODBC
我的操作系统是windows server 2008 R2 X64,系统自带两个版本的ODBC管理器,在"运行"中输入下面内容分别调出他们: X64: C:\windows\sys ...
- 利用Logstash plugins做更多的事情
1. 引言 之前一篇文章<Logstash 介绍及linux下部署>,我们实现了logstash的安装以及简单的控制台标准输入输出测试,那么logstash能不能做更多的事情呢?答案是肯定 ...
- 极光开发者沙龙 JIGUANG MEETUP —— 移动应用性能优化实践
活动背景 移动互联网时代,各大互联网公司都已将自己的产品和服务全面移动化,各类新产品功能都会优先在移动 App 上尝试. 应用性能作为影响用户体验最重要的因素,在开发过程中显得尤为重要. 用户网络环境 ...
- 关于:maven项目中pom.xml文件添加依赖无法自动搜索的问题
用的是eclipse 1.Window------>Show View------->Maven Repositories(这个选项一般不直接显示,而在others里面) 2.操作完毕后会 ...
- NSUserdefault读书笔记
作用 用来存储首选项的.本来首选项是存在磁盘上的,NSUserdefault相当于提供了一个缓存,不用每次都写文件.也就是说设置首选项以后,可以马上读出来,不必先写到磁盘中去. 定期调用synchro ...
- 线上CPU100%?看看这篇是怎么排查的!
前言 作为后端开发工程师,当收到线上服务器CPU负载过高告警时,你会这么做?重启服务,忽略告警?不过在我看来一个合格的工程师是一定要定位到具体问题所在的,从而 fix 它.下面记录一下线上服务器 CP ...
- 通过cookie绕过验证码登录
在我们做自动化的时候碰到一些比较难破解的验证码时是非常头疼的,一般来说最好的办法就是让开发屏蔽,这样最有益身心健康. 那么今天我介绍的这个方法也挺简单的,就是通过添加cookie的方式绕过验证码直接登 ...
- jquery offset()和position()的区别
<script src="jquery/jquery-3.3.1.min.js"></script> <script type="text/ ...
- js控制输入框只能输入数字不能输入其他字符
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- c++ 用 0x3f3f3f3f 设定最大int值的优点
在许多算法中都要用到一个常量来表示最大值,例如:寻找一个最小数,就要先设定一个值a,如果比a小,a就等于这个数:再如,最短路径中基本的松弛操作: 0 在c++中可以用memset() 来初始化数组成最 ...