@CrossOrigin springboot裏面使用跨域

跨域是一個比較常見的功能了,看看springboot的註解實現

@Target({ ElementType.METHOD, ElementType.TYPE })

@Retention(RetentionPolicy.RUNTIME)

@Documented
public @interface CrossOrigin {

String[] DEFAULT_ORIGINS = { "*" };

String[] DEFAULT_ALLOWED_HEADERS = { "*" };

boolean DEFAULT_ALLOW_CREDENTIALS = true;

long DEFAULT_MAX_AGE = 1800;

/**
 * 同origins屬性一樣
 */
@AliasFor("origins")
String[] value() default {};

/**
 * 所有支持域的集合,例如"http://domain1.com"。
 * <p>這些值都顯示在請求頭中的Access-Control-Allow-Origin
 * "*"代表所有域的請求都支持
 * <p>如果沒有定義,所有請求的域都支持
 * @see #value
 */
@AliasFor("value")
String[] origins() default {};

/**
 * 允許請求頭重的header,默認都支持
 */
String[] allowedHeaders() default {};

/**
 * 響應頭中允許訪問的header,默認爲空
 */
String[] exposedHeaders() default {};

/**
 * 請求支持的方法,例如"{RequestMethod.GET, RequestMethod.POST}"}。
 * 默認支持RequestMapping中設置的方法
 */
RequestMethod[] methods() default {};

/**
 * 是否允許cookie隨請求發送,使用時必須指定具體的域
 */
String allowCredentials() default "";

/**
 * 預請求的結果的有效期,默認30分鐘
 */
long maxAge() default -1;

}

@RestController
//實現跨域註解
//origin=""代表所有域名都可訪問
//maxAge飛行前響應的緩存持續時間的最大年齡,簡單來說就是Cookie的有效期 單位爲秒
//若maxAge是負數,則代表爲臨時Cookie,不會被持久化,Cookie信息保存在瀏覽器內存中,瀏覽器關閉Cookie就消失
@CrossOrigin(origins = "
",maxAge = 3600)
public class UserController {br/>@Resource
private IUserFind userFind;

@GetMapping("finduser")
public User finduser(@RequestParam(value="id") Integer id){
    //此處省略相應代碼
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章