SpringBoot使用Fastjosn优雅的提供jsonp跨域接口

SpringBoot使用Fastjosn优雅的提供jsonp跨域接口

跨域的方式有很多,jsonp算是一种(jsonp的原理,这里不多赘述)。
使用Fastjson提供的ResponseBodyAdvice可以优雅的实现jsonp跨域接口。

必须依赖

忽略SpringBoot的必须依赖

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>${fastjson.version}</version>
</dependency>

添加 ResponseBodyAdvice 到ioc

@Bean
public JSONPResponseBodyAdvice jSONPResponseBodyAdvice() {
	return new JSONPResponseBodyAdvice();
}

Jsonp接口方法,添加注解 @ResponseJSONP

该注解就一个属性:callback ,用于指定客户端提供的回调参数

@RequestMapping("/test")
@Controller
public class TestController {
	
	@GetMapping("/jsonp")
	@ResponseJSONP(callback = "callback")
	@ResponseBody
	public Object jsonp() {
		return Message.success("Hello");
	}
}

测试

image

使用Cros方法跨域,参考