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
相关推荐
总结来说,这个压缩包提供的示例展示了如何使用jQuery的Ajax进行跨域请求,并在Tomcat服务器上的Java Servlet中处理这些请求。这个例子对于理解和解决实际项目中可能出现的跨域问题非常有帮助。开发者需要理解CORS...
本文详细介绍了如何在Java Web应用中配置跨域请求支持。通过在`web.xml`文件中定义过滤器,并在`cors.properties`文件中进行细致的配置,可以有效地解决跨域问题。这不仅提高了应用程序的安全性,也增强了其与其他...
### JAVA的AJAX跨域访问:深入解析与解决方案 #### 引言 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于实现网页的异步加载,从而提升用户体验。然而,AJAX请求的一个常见问题就是...
### AJAX跨域请求详解 #### 一、引言 在Web开发中,由于浏览器的同源策略限制,AJAX请求通常只能向同源服务器发送请求。然而,在实际应用中,跨域请求的需求非常常见。本篇文章将通过一个具体的示例(JSP页面+后台...
【Java通过Filter实现允许服务跨域请求的方法】 在Web开发中,浏览器的同源策略是一项安全机制,限制了JavaScript只能发起...通过上述方法,开发者可以在Java Web应用中轻松实现跨域请求的允许,以满足各种跨域需求。
综上所述,解决Tomcat跨域请求资源的问题需要理解CORS机制,并结合具体的Web服务器配置进行调整。此压缩包提供的解决方案可能是通过一个预配置的jar包简化这一过程,但具体使用方法需要进一步研究该jar包的文档或...
在现代Web开发中,由于浏览器的安全机制——同源策略,对于跨域请求的支持成为了一个常见的需求。所谓跨域,是指当请求的目标URL与当前页面地址在协议、域名、端口三者中存在不匹配的情况。这种策略限制了来自不同源...
当我们谈论跨域请求时,这是一个与Web安全策略相关的概念,主要是浏览器为了防止恶意脚本从不同源获取数据而实施的一种保护机制。`httpclient`是一个Java库,它允许我们方便地执行HTTP请求,而`fastjson`则是阿里...
1. **跨域请求**:跨域请求是指一个域下的文档或脚本尝试请求另一个域下的资源。例如,一个运行在`www.example1.com`上的网页尝试通过Ajax向`www.example2.com`发送请求。由于同源策略的限制,这种请求通常会被...
在IT行业中,前端和后端开发是构建Web应用程序的关键组成部分,而跨域请求则是这两个领域交互时经常遇到的问题。本文将深入探讨前端与后端之间的通信、跨域请求的概念、原因以及解决策略,并通过Java和JavaScript...
同时,由于跨域请求不会携带Cookie,所以需要在后端实现Session ID的传递,例如通过URL参数、隐藏表单字段或者在响应头中添加Session ID。 6. **实现Session监听器**:可以创建一个监听Session的监听器,当Session...
使用拦截器实现 CORS 需要实现 javax.servlet.Filter 接口,并在 Filter 中设置响应头,允许跨域请求访问。下面是一个简单的示例代码: ```java import javax.servlet.Filter; import javax.servlet.FilterChain; ...
SpringBoot应用可以通过配置CORS来允许特定或所有来源的跨域请求。在SpringBoot应用中,你可以创建一个配置类,比如`CorsConfig`,并添加一个`CorsFilter`。在`buildConfig`方法中,设置`CorsConfiguration`对象,...
总的来说,解决Web跨域问题需要理解同源策略,以及相应的解决策略,如CORS、JSONP等。在使用特定技术如Cesium时,还需要考虑其特有的跨域需求和解决方案。在实际操作中,务必遵循最佳实践,确保既能保证安全,又能...
跨域请求是Web开发中一个常见的挑战,尤其是在使用Ajax进行异步数据交互时。这个问题源自浏览器的同源策略,该策略限制了JavaScript只能访问与当前页面同源(协议、域名和端口相同)的资源。当尝试从一个域向另一个...
Java跨域问题通常出现在Web应用程序中,特别是在前后端分离的架构下。前端(通常是JavaScript)与后端...通过这些技术,Java开发者可以确保其Web服务能够正确处理来自不同源的跨域请求,为前端应用提供灵活的数据接口。
`cors-filter-1.7.jar` 是一个用于处理跨域请求的过滤器,通常集成在Java Web应用服务器中,如Tomcat、Jetty等。CORS Filter基于Java Servlet规范,可以拦截HTTP请求并添加适当的CORS响应头,允许来自不同源的请求...
在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现页面的异步更新,使得用户在不刷新整个页面的情况下与服务器...理解并正确配置CORS,以及安全地使用跨域请求,是Web开发中不可或缺的知识点。
【标题】"Dubbox跨域请求、Cookie设置"所涉及的知识点主要集中在分布式服务框架Dubbo的跨域问题处理和Cookie的配置上。Dubbox是阿里巴巴开源的一个基于Dubbo的扩展,提供了更多的特性,如REST支持、Zookeeper注册...
描述中的“java web版 跨域 ajax+jsonp例子源代码.zip”进一步强调这是基于Java Web的示例,用于解决JavaScript通过AJAX进行跨域请求时遇到的问题。AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面...