Java開發(fā)中解決Js的跨域問題過程解析
這篇文章主要介紹了Java開發(fā)中解決Js的跨域問題過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
主流方法有JSONP和CORS兩種,這里記一下后者的方式,理論基礎(chǔ)就是在請求的時候在http請求頭中添加如下屬性:
//指定允許其他域名訪問 Access-Control-Allow-Origin:http://localhost:8989
如果后端用Java開發(fā),在返回請求中可以添加如下屬性
1.在跨域問題中,如果不操作cookie,只需要在后端代碼中添加如下代碼就可以
response.setHeader("Access-Control-Allow-Origin", "http://localhost:8989"); //第二個參數(shù)的意思就是說是哪個地址訪問,如果要通配全部,就使用*即可
雖然是加在了response中,但是HTTP是基于TCP(傳輸層協(xié)議)的應(yīng)用層協(xié)議,每次請求的時候都會有“三次握手”的過程,所以添加在response中后,會在第一次請求中告知客戶端可以請求。
如果是SpringMVC4.2以上版本的話,一個注解就可以搞定
@CrossOrigin(origins=http://localhost:8080)
這個注解就是對上邊的代碼的封裝,源碼如下:
@Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface CrossOrigin { @Deprecated String[] DEFAULT_ORIGINS = new String[]{"*"}; @Deprecated String[] DEFAULT_ALLOWED_HEADERS = new String[]{"*"}; @Deprecated boolean DEFAULT_ALLOW_CREDENTIALS = false; @Deprecated 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; }
@Deprecated:若某類或某方法加上該注解之后,表示此方法或類不再建議使用,調(diào)用時也會出現(xiàn)刪除線,但并不代表不能用,只是說,不推薦使用,因為還有更好的方法可以調(diào)用。
2.如果跨域請求中涉及了對cookie的操作,就要添加一個屬性,代碼和注解分別為
response.setHeader("Access-Control-Allow-Origin", "http://localhost:8989"); response.setHeader("Access-Control-Allow-Credentials", "true");
@CrossOrigin(origins="http://localhost:8989",allowCredentials="true")
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis-Plus如何最優(yōu)雅最簡潔地完成數(shù)據(jù)庫操作
Mybatis-Plus是一個?Mybatis?的增強工具,在?Mybatis?的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關(guān)于MyBatis-Plus如何最優(yōu)雅最簡潔地完成數(shù)據(jù)庫操作的相關(guān)資料,需要的朋友可以參考下2022-03-03SpringBoot http post請求數(shù)據(jù)大小設(shè)置操作
這篇文章主要介紹了SpringBoot http post請求數(shù)據(jù)大小設(shè)置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Mybatis如何使用正則模糊匹配多個數(shù)據(jù)
這篇文章主要介紹了Mybatis如何使用正則模糊匹配多個數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01Admin - SpringBoot + Maven 多啟動環(huán)境配置實例詳解
這篇文章主要介紹了Admin - SpringBoot + Maven 多啟動環(huán)境配置,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03詳談@Cacheable不起作用的原因:bean未序列化問題
這篇文章主要介紹了@Cacheable不起作用的原因:bean未序列化問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01