`
阅读更多

 

 

================================

©Copyright 蕃薯耀 2020-11-25

http://fanshuyao.iteye.com/

 

* spring框架4.1加入jsonp配置,在5.1时,删除不再建议使用该方式,而是使用:CORS
* CORS地址:https://docs.spring.io/spring/docs/5.0.x/spring-framework-reference/web.html#mvc-cors

springboot cors实现见:https://www.iteye.com/blog/fanshuyao-2517777

 

 

一、Java配置

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice;

import com.szpl.gtkj.cghj.workflow.controller.FlowTaskController;

/**
 * springboot框架4.1加入jsonp配置,在5.1时,删除不再建议使用该方式,而是使用:CORS
 * CORS地址:https://docs.spring.io/spring/docs/5.0.x/spring-framework-reference/web.html#mvc-cors
 *
 */
@ControllerAdvice(basePackageClasses = FlowTaskController.class)
public class JsonpConfig extends AbstractJsonpResponseBodyAdvice{

	/**
	 * 声明构造方法
	 */
	public JsonpConfig() {
        super("callback", "jsonp");
    }
	
}

 

 

二、前端调用

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsonp请求</title>
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="js/json3.min.js"></script>
<script type="text/javascript" src="js/base.js"></script>
</head>
<body>

	<div>jsonp请求</div>
	<div>访问:http://127.0.0.1:7010/gtkjCghj/static/cross.html</div>
	<div>只能使用get方法</div>
	
	
<script type="text/javascript">

function ajax(){
	console.log("ajax()");
	$.ajax({  
		//async: false,//设置为同步,默认为异步(一般不需要)  
		url : "http://lqy.com:7010/gtkjCghj/workflow/processes?gxDocNo=f2-202000234",  
		type : "get",  
		dataType : "jsonp",
		jsonp : "callback",
		complete : function(XMLHttpRequest, textStatus){  
			//alert("textStatus="+textStatus);  
		},  
		error : function(XMLHttpRequest, textStatus, errorThrown){  
			if("error" == textStatus){  
				alert("服务器未响应,请稍候再试");  
			}else{  
				alert("请求失败,textStatus="+textStatus);  
			}  
		 },  
		 success : function(data){  
			 if(data != null){  
				 console.log("jsonp data===" + JSON.stringify(data));
			 }else{  
				 alert("返回结果为空!");  
			 }  
		 }  
	}); 
};


ajax();
</script>

</body>
</html>

 

 

spring CORS跨域请求解决方案总结:(建议采用方案1)

1、springboot CORS 跨域请求解决三大方案,springboot CorsFilter解决跨域问题

https://www.iteye.com/blog/fanshuyao-2517777

 

2、cors-filter使用,cors-filter解决跨域访问,cors-filter跨域请求

https://www.iteye.com/blog/fanshuyao-2517803

 

3、org.ebaysf.web的cors-filter使用,cors-filter跨域请求

https://www.iteye.com/blog/fanshuyao-2517820

 

4、java tomcat-catalina CorsFilter使用,apache tomcat-catalina CorsFilter使用

https://www.iteye.com/blog/fanshuyao-2517821

 

5、springboot jsonp 跨域请求,springboot使用jsonp跨域

https://www.iteye.com/blog/fanshuyao-2517789

 

 

================================

©Copyright 蕃薯耀 2020-11-25

 

http://fanshuyao.iteye.com/

1
2
分享到:
评论

相关推荐

    html通过 ajax jsonp跨域请求接收和传送数据

    **AJAX和JSONP跨域请求的实现过程** 1. **AJAX跨域**: 通常,AJAX请求受到同源策略限制。为实现跨域,我们可以使用CORS(Cross-Origin Resource Sharing)机制。服务器需要在响应头中添加`Access-Control-Allow-...

    jsonpajax跨域请求

    "jsonp跨域请求"可能是服务器返回的示例数据,模拟了JSONP的跨域请求过程。 总结,JSONP和CORS是解决JavaScript跨域问题的两种主要方法,它们各有优缺点,适用于不同的场景。JSONP简单易用,但安全性较低;CORS则更...

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

    总结来说,Spring Boot通过AbstractJsonpResponseBodyAdvice类简化了JSONP跨域请求的处理过程,使得开发者能够轻松地为Spring Boot应用添加跨域支持。在实际开发中,根据项目的具体需求,可以灵活地使用JSONP或其他...

    jsonp跨域请求数据实现手机号码查询实例分析.docx

    - **发起请求**:使用jQuery的`$.ajax`方法发送GET请求,并设置`dataType`为`"jsonp"`以支持JSONP方式的跨域请求。 - **参数设置**:URL中包含待查询的电话号码,并指定`jsonp`参数为`callback`,这是服务器端期望...

    ajax跨域CORS方案 JSONP跨域请求方案.zip

    在Web开发中,跨域(Cross-Origin)是一个常见的问题,特别是在使用Ajax进行异步数据交互时。跨域限制是浏览器为了安全原因而设置的一种机制,防止恶意网站通过脚本访问其他站点的数据。本文将深入探讨两种主要的...

    第25周-第06章节-Python3.5-JSONP跨域请求jQuery方式.avi

    第25周-第06章节-Python3.5-JSONP跨域请求jQuery方式.avi

    JSONP跨域实现百度搜索功能(v1.0.0)

    在本项目"JSONP跨域实现百度搜索功能(v1.0.0)"中,我们将深入探讨如何利用JSONP技术来实现在网页上嵌入一个能够进行百度搜索的功能。 首先,我们需要理解为什么需要JSONP。浏览器的同源策略是出于安全考虑,不允许...

    jsonp跨域请求实现示例

    JSONP(JSON with Padding)是一种解决跨域请求的方法,主要用于解决不同域之间因浏览器同源策略限制而无法进行AJAX请求的问题。在AJAX请求中,浏览器的同源策略限制了与当前页面不同域的服务器进行数据交互,而...

    PHP AJAX JSONP实现跨域请求使用范例_ajax如何解决跨域请求

    在实际应用中,我们可以使用 JSONP 来实现跨域请求,以便从其他域名下的服务器获取数据。但是,我们需要注意的是,使用 JSONP 会存在安全风险,因为它可以被恶意攻击所利用。 在使用 JSONP 时,我们需要注意以下几...

    SpringBoot实现jsonp跨域通信的方法示例

    JSONP(JSON with Padding)是一种跨域数据交互协议,它利用了浏览器的同源策略漏洞,通过动态插入`&lt;script&gt;`标签的方式实现跨域请求。由于JavaScript可以执行来自任何源的脚本,JSONP利用这一特性,允许浏览器向...

    jsonp跨域请求

    JSONP(JSON with Padding)是一种常见的解决JavaScript跨域问题的技术。由于浏览器的同源策略限制,JavaScript通常不能向不同源的服务器...了解和掌握JSONP有助于理解跨域请求的原理,为解决实际问题提供更多的选择。

    详解Spring Boot 2.0.2+Ajax解决跨域请求的问题

    解决跨域请求的方法有多种,包括JSONP、引用A站的JS、Nginx做A站的反向代理、后端服务放开跨域请求等。其中,后端服务放开跨域请求是最常用的方法。 知识点4:Spring Boot中放开跨域请求 在Spring Boot中放开跨域...

    轻松搞定jQuery+JSONP跨域请求的解决方案

    在使用jQuery处理JSONP请求时,可以通过jQuery提供的Ajax方法来实现。而$.getJSON方法可以看作是$.ajax的一个简化版本,专门用于发送GET请求。当调用$.getJSON方法时,会自动在请求的URL中添加callback参数,而该...

    jsonp跨域解决源代码

    2. JSONP原理:JSONP的基本思想是,服务器提供一个可以接受参数的JavaScript函数名,客户端在请求时传递这个函数名,服务器返回一个调用该函数并带有JSON数据的脚本,`&lt;script&gt;`标签加载这个脚本,从而实现跨域数据...

    springboot+jsonp解决前端跨域问题小结

    使用JSONP时,前端会定义一个回调函数,并通过请求的URL告诉服务器,服务器将返回的数据放在这个回调函数的调用中返回给前端,前端脚本就可以接收到这个回调函数并执行它,从而实现跨域数据的获取。 具体来说,在...

    ajax跨域请求jsonp前后台代码

    基于ajax方式的跨域请求jsonp的前后台代码

    详细解密jsonp跨域请求

    总的来说,JSONP跨域请求是一种古老但有效的方式,用于解决浏览器同源策略带来的限制问题。它的优点是简单易用,支持跨域GET请求。但是,JSONP也有一定的安全风险,比如被恶意利用,因此在使用时需要谨慎。另外,...

    详解java 中Spring jsonp 跨域请求的实例

    在Spring框架中处理JSONP跨域请求是一个常见问题,尤其当开发者需要从前端JavaScript代码中调用不同域上的RESTful服务时。由于浏览器的安全限制,同源策略防止了不同域的文档或脚本间的交互,这使得传统的AJAX请求不...

    Vue2.0 vue-source jsonp 跨域请求

    在介绍Vue2.0使用vue-resource进行jsonp跨域请求之前,我们需要了解一些基础概念: 1. JSONP(JSON with Padding)是一种老旧的技术,用于绕过浏览器的同源策略。它通过动态创建标签的方式来实现跨域请求。 2. 在...

    Springboot 实现跨域访问无需使用jsonp的实现代码

    在Spring Boot应用中,通常我们使用CORS来处理跨域问题,而不再依赖像JSONP这样的旧方法。JSONP(JSON with Padding)虽然简单,但存在安全性和灵活性不足的问题,因此在现代Web应用中逐渐被CORS取代。 在Spring ...

Global site tag (gtag.js) - Google Analytics