java伺服器端配置支援跨域請求
阿新 • • 發佈:2018-12-23
前言:之前做好的登陸介面,剛剛拿去給前端呼叫。發現前端那邊報錯,無法調到介面。因為我們後端的介面是在一臺伺服器上,前端(使用的是nodejs)的程式碼在另一臺伺服器上,導致兩臺伺服器之間無法相互呼叫(伺服器我們使用的是tomcat 7)。所以為了解決這個問題,前端那邊在介面方面加了一段程式碼。同時,我們伺服器端也同樣需要加一個配置用來解決跨域。上網上查找了相關解決方案,配置到程式碼中,發現OK了。所以拿出來和大家分享一下,也為以後再遇到這種問題做個記錄。好了,閒話少說,開始!
首先,上網搜尋關鍵詞 “伺服器支援跨域” 發現如下幾篇文章:
http://hw1287789687.iteye.com/blog/2212292
http://www.360doc.com/content/14/0920/14/7909375_411017244.shtml
http://blog.csdn.net/newjueqi/article/details/27058765
以上的文章可以參考,寫的思路都很對,但是具體的操作沒有寫。所以我就在此把具體操作寫出來就可以了。
首先我們專案中使用的是maven管理jar包,所以我要找到對應的jar包加入到pom中。
<!-- 跨域過濾器相關 --> <dependency> <groupId>com.thetransactioncompany</groupId> <artifactId>java-property-utils</artifactId> <version>1.9.1</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.6.2</version> </dependency> <!-- 跨域過濾器相關 -->
然後接下來在專案中的web.xml中加入如下filter節點
<filter> <description>跨域過濾器</description> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.allowOrigin</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, POST, HEAD, PUT, DELETE</param-value> </init-param> <init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>Set-Cookie</param-value> </init-param> <init-param> <param-name>cors.supportsCredentials</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
接下來.........
還接下來什麼呀。重啟伺服器,跑起來吧。騷年!!!