此方案只是服務端的**需要修改,前端**不需要修改。
1.普通的get或者post請求跨域。
在自己編寫的過濾器檔案中新增如下**,也可以再單獨的方法中新增,:
//允許所有的域都可以跨域訪問
response
.addheader(
"access-control-allow-origin"
, "*"
);//允許跨域get和post請求
response
.addheader(
"access-control-allow-method"
, "*"
);//以上兩行**,就可以解決普通的get和post請求的跨域問題。
2.ajax的json請求
//需要新增普通跨域請求的兩行**,然後再新增下面的**。
//解決json格式的ajax請求,先是 options請求,這是預檢命令,如果預檢命令檢查通過之後才進行真正的請求。
response.addheader("access-control-allow-headers","content-type");
//快取預檢命令,在規定的時間內不需要重複的進行預檢操作。
response.addheader("access-control-max-age","3600");//
單位為秒。
3.帶有cookie的跨域請求
如果是帶有
cookie
的跨域訪問,則允許跨域的網域名稱必須準確對應,不可以使用
*。也可以通過判斷客戶端的請求中包含的網域名稱來判斷。
stringorigin = request.getheader(「origin」);
if(origin!= 「」)
response.addheader("access-control-allow-credentials","true");
帶有自定義的
cookie
的跨域請求
需要修改headers的資訊。
response.addheader("access-control-allow-headers","content-type,
自定義1,
自定義2");
如何解決跨域問題
1 什麼是跨域?2 跨域請求資源的方法 解決跨域的方法 1 porxy 反向 定義和用法 proxy 用於將請求傳送給後台伺服器,通過伺服器來傳送請求,然後將請求的結果傳遞給前端。實現方法 通過nginx 注意點 1 如果你 的是https協議的請求,那麼你的proxy首先需要信任該證書 尤其是自定...
如何解決跨域問題?
跨域問題可以使用一下幾種方法解決 jsonp解決 jsonp和ajax一樣,是一門技術,缺點是get方式長度限制不能拼太多東西,大概2kb 前端偏好 或者iframe解決 操作簡單 或者h5新增了window.postmessage方法可以實現跨域通訊 相容不好 還能修改document.domai...
如何解決跨域問題
1.jsonp跨域 前端 json返回的是一串資料,而jsonp返回的是指令碼 jsonp只支援get請求,不支援post請求 2.nginx反向 後端 www.baidu index.html需要呼叫www.sina.com server.php,可以寫乙個介面www.baidu.com serv...