[alibaba/fastjson]关于使用FastJsonpResponseBodyAdvice,无论callback传与不传,返回格式都是application/javascript

2025-11-11 232 views
5

FastJsonHttpMessageConverter.writeInternal判断obj为MappingFastJsonValue时,没有对obj.jsonpFunction非空判断,又不想使用ResponseJSONP注解, 好像ResponseJSONP是方法上生效

回答

7

可以先自已重写了下方法protected void writeInternal(Object object, HttpOutputMessage outputMessage) throws IOException,加上function判断

2

不知道是不是出于安全性考虑,老版本的jsonp实现类都标记为Deprecated,新的实现方式看源码好像都要加ResponseJSONP注解,有点小难用

1

@VictorZeng

5

@rplees 你的诉求是即可以使用FastJsonpResponseBodyAdvice来使用jsonp接口,然后又能在正常json接口返回MediaType.APPLICATION_JSON 对吧

6
1538 做了新的修改, ResponseJSONP可以注解在类上面。

MappingFastJsonValue改回了原来对jsonpFunction的非空判断。

4

@Luckywb 嗯,我也是自己这样解决的.

2

@VictorZeng 不好意思,现在才看到信息, 我的意思是 xxx.json Response Content Type的是MediaType.APPLICATION_JSON,xxx.json?callback=foo Response Content Type 是application/javascript, 我的做法跟 @Luckywb 是一样的