java web中如何跨域请求呢?
使用jsonp,详情请参考:http://json-p.org/
页面代码如下:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="application/javascript" > function jsonpCallback(result) { alert(JSON.stringify(result)); /*for(var i in result) { alert(i+":"+result[i]);//循环输出a:1,b:2,etc. } */ } var JSONP=document.createElement("script"); JSONP.type="text/javascript"; JSONP.src="http://192.168.0.100:8080/tv_mobile/video/text2?callback=jsonpCallback"; document.getElementsByTagName("head")[0].appendChild(JSONP); </script> </head> <body> </body> </html>
在浏览器中访问的效果:
后台采用spring mvc:
@ResponseBody @RequestMapping(value = "/text2",produces=SystemHWUtil.RESPONSE_CONTENTTYPE_JAVASCRIPT2 ) public String text2(HttpServletRequest request, HttpServletResponse response,String contentType2,String callback) throws IOException { String content = null; Map map = new HashMap(); map.put("fileName", "a.txt"); content=JSONPUtil.getJsonP(map, callback); System.out.println(content); return content; }
JSONPUtil.getJsonP 静态方法的实现如下:
/*** * 用于jsonp调用 * @param map : 用于构造json数据 * @param callback : 回调的javascript方法名 * @return */ public static String getJsonP(Map map,String callback) { ObjectMapper mapper = new ObjectMapper(); String content = null; try { content = mapper.writeValueAsString(map); System.out.println(content); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if(ValueWidget.isNullOrEmpty(callback)){ return content; } return callback+"("+content+")"; }
依赖jackson 库
后台返回的内容是:jsonpCallback({"fileName":"a.txt"})
content type是
注意:后台返回的形式是:函数名(参数),此处的函数名就是回调函数的名称
参考:
spring mvc设置应答体的content type
AJAX 跨域请求 - JSONP获取JSON数据:http://justcoding.iteye.com/blog/1366102
相关推荐
一般的解决方案是使用服务器代理(由同域服务器跨域请求后返回),但导致过于复杂(参见:Java-webservice-CXF-SOAP服务.docx服务器代理)。 如果服务器能够操作,也可以使用JSONP允许跨域请求。
CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。 压缩包里有跨域代码示例和JAR包,JAR包文件放到lib目录下且在工程项目中web.xml中的配置就可实现。...跨域代码示例及所需要的JAR包
最简单的做法是通过设置浏览器允许浏览器跨域请求。但是今天我们这里不讲这种方式,有兴趣的可以在度娘上搜“chrome浏览器跨域设置”教程非常详细。这个方式是有局限性的,因为不同浏览器的跨域设置不相同,甚至相同...
首先下载cors-filter-2.5.jar和java-property-utils-1.9.1 1、把这两个jar包放在tomcat的lib下。 2、在conf文件夹下找到web.xml。 3、在web.xml中添加如下代码: <filter-name>CORS <filter-class>...
cors-proxy 基于Java Jersey的CORS代理绕过javascript跨域请求限制关于由于浏览器实施的CORS限制,来自浏览器的Javascript无法访问来自其他域的资源。 该Web代理将绕过这些限制。环境Java 1.7以上Tomcat 7以上用法在...
为了节约成本,很多时候一台server 的nginx可能要部署多个前端的情况,本实例是在docker环境下部署两个前端,同时处理前端调用后端跨域问题,本示例为阿里云centos7 系统...第三部分:处理前端调用java后端跨域问题
主要为大家详细介绍了java web服务器实现跨域访问,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 ...
3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 ...
主要介绍了使用Cors实现JavaWeb跨域请求问题的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
tomcat接受跨域请求时,需要配置相关filter,此jar包导入lib中,在tomcat的web.xml添加相关内容即可解决tomcat跨域问题
基于 Java Web 项目的 SpringBoot 框架初始化模板,该模板整合了常用的框架,保证大家在此基础上能够快速开发自己的项目,该模板针对于后端启动开发小而精,本项目会由作者持续更新。 业务特性: 1、使用 Undertow ...
Tomcat lib目录下添加cors-filter-1.7.jar,java-property-utils-1.9.jar这两个jar包,项目中web.xml 中添加filter,以及出现OPTIONS 类型的请求并返回403的解决方案;压缩文件包含jar文件,以及web.xml配置。
html标签中src属性,只支持get请求,允许跨域 jsonp格式eval jsonp格式eval ifram之间交互,window.posMessage方法发送内容应(但是字符串长度限制255个) 使用参考文档:...
在 Spring Boot 中,我们可以使用 @EnableWebSocket注解来启用 WebSocket 功能,并使用 WebSocketHandlerRegistry 注册 WebSocket 处理器,指定访问地址和允许跨域请求头。WebSocket 处理器可以继承自 ...
跨域请求时,页面报错“Access-Control-Allow-Origin”, 因为浏览器只允许请求当前域的资源,而对其他域的资源表示不信任。需要配置cors全称是"跨域资源共享"(Cross-origin resource sharing)。以tomcat为例子在 ...
手写Tomca之深度解析动态资源请求原理 深度解析springMVC实现原理(手写springMVC框架) Java验证码 正则黑名单爬虫系统 深入数据库连接池内部运转原理 分布式服务下的交易一致 企业必备技能之面向服务编程Web-Service...
CORS过滤器是一种通用的解决方案,用于将跨源资源共享(CORS)支持适合于Java web应用程序。CORS是W3C最近推出的一种标准机制,用于在web浏览器和参与服务器中启用跨域请求。
一个web简单框架,web前端和后台是部署在不同服务器上,前端和后端采用http协议发json请求,解决了跨域的问题。可以作为开发web工程的简单模板。 目前功能: 1、实现了对excel的解析。 2、跨域问题。
面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...