spring cors
spring 针对 跨域调用的解决方案 github地址
点击查看官方文档
服务端设置
@CrossOrigin(
"http://127.0.0.1")
@RestController
@RequestMapping(
"/api")
public class RestDemoController {
@RequestMapping(
"/hello")
public Map
demo(){
Map map =
new HashMap();
map.put(
"message",
1000);
map.put(
"code",
200);
return map;
}
}
客户端调用
$.ajax({
url:
'http://localhost:8080/cors/api/hello',
type:
'get',
dataType:
'json',
success:
function(data){
alert(data);
}
})
CrossOrigin定义
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @
interface CrossOrigin {
String[] DEFAULT_ORIGINS =
new String[]{
"*"};
String[] DEFAULT_ALLOWED_HEADERS =
new String[]{
"*"};
boolean DEFAULT_ALLOW_CREDENTIALS =
true;
long DEFAULT_MAX_AGE =
1800L;
@AliasFor(
"origins")
String[] value()
default {};
@AliasFor(
"value")
String[] origins()
default {};
String[] allowedHeaders()
default {};
String[] exposedHeaders()
default {};
RequestMethod[] methods()
default {};
String allowCredentials()
default "";
long maxAge()
default -
1L;
}
设置fastjson转换json
@Configuration
@EnableWebMvc
@ComponentScan(
"com.github.wuhulala")
public class AppConfig extends WebMvcConfigurerAdapter {
/**
* 设置fastjson转换json
* @param converters 转换器
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter converter =
new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig =
new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteClassName,
SerializerFeature.WriteMapNullValue
);
ValueFilter valueFilter =
new ValueFilter() {
public Object
process(Object o, String s, Object o1) {
if (
null == o1){
o1 =
"";
}
return o1;
}
};
fastJsonConfig.setSerializeFilters(valueFilter);
converter.setFastJsonConfig(fastJsonConfig);
converters.add(converter);
}
}
转载请注明原文地址: https://ju.6miu.com/read-1307897.html