杂记

跨域问题设置

 		 response.setHeader("Access-Control-Allow-Origin","*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "1728000");
        response.setHeader("Access-Control-Allow-Headers", "TOKEN");
        response.setHeader("Content-Type", "application/json;charset=utf-8");

1.Access-Control-Allow-Origin

设置请求源,只有设置的才可以访问资源。例如

Access-Control-Allow-Origin: www.xxx.com,那么这个请求资源只针对www.xxx.com的域名是可访问的
Access-Control-Allow-Origin: * , 这个设置表示任何源都能访问

Origin是源,同源策略导致的跨域问题,同源就是说服务端和前端(请求端)要是在同一个协议同一个域名同一个端口下。

2.Access-Control-Allow-Methods

控制请求被允许的请求方式

Access-Control-Allow-Methods : POST, GET, OPTIONS, DELETE ,表示被允许的请求方式只能是POST, GET, OPTIONS, DELETE
Access-Control-Allow-Methods: * 表示任何请求方式都运行访问

3.Access-Control-Max-Age

设置预检查保留时间。Preflighted Requests是CORS中一种透明服务器验证机制。预检请求首先需要向另外一个域名的资源发送一个 HTTP OPTIONS 请求头,其目的就是为了判断实际发送的请求是否是安全的。

Access-Control-Max-Age: 1800 设置保留时间 为1800s,在相同时间内 【同一个请求】不在发起OPTIONS请求

4.Access-Control-Allow-Headers

设置允许请求头携带的参数。

Access-Control-Allow-Headers: TOKEN 请求要携带TOKEN

response.setHeader(“Content-Type”, “application/json;charset=utf-8”); 这是用来设置影响的内容格式及编码的。

swagger的配置

配置:

@EnableSwagger2
// 启动bean校验 jsr303
@Import(BeanValidatorPluginsConfiguration.class)
@Configuration
public class Swagger2Config {


   String basePackage = "com.payment.xxx.controller";

   @Bean
   public Docket docket() {
       return new Docket(DocumentationType.SWAGGER_2)
               .apiInfo(apiInfo())
               .select()
               // 要扫描的api的包路径
               .apis(RequestHandlerSelectors.basePackage(basePackage))
               .paths(PathSelectors.any()).build();
   }

   // 配置接口文档的信息
   public ApiInfo apiInfo() {
       return new ApiInfoBuilder()
               .description("xxx系统接口文档")
               .title("PAYMENT")
               .version("V1.0")
               .build();

   }


}

设置全局参数,比如用户登录后获取token,下次请求要在请求头携带token,这里可以设置为全局的:

@EnableSwagger2
// 启动bean校验 jsr303
@Import(BeanValidatorPluginsConfiguration.class)
@Configuration
public class Swagger2Config {


   String basePackage = "com.payment.xxx.controller";

   @Bean
   public Docket docket() {
   	// 构建参数
       ParameterBuilder parameterBuilder = new ParameterBuilder();
        Parameter parameter = parameterBuilder.name("TOKEN")
                .description("用户身份令牌")
                .modelRef(new ModelRef("String"))
                .parameterType("header")
                .required(false)
                .build();

        List<Parameter> params = new ArrayList<>();
        params.add(parameter);

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any()).build()
                // 设置为全局参数
                .globalOperationParameters(params);
   }

   // 配置接口文档的信息
   public ApiInfo apiInfo() {
       return new ApiInfoBuilder()
               .description("xxx系统接口文档")
               .title("PAYMENT")
               .version("V1.0")
               .build();

   }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值