Java 無法跨域問題(No 'Access-Control-Allow-Origin'..)
阿新 • • 發佈:2019-01-02
轉至:http://www.111cn.net/jsp/Java/119383.htm
http://blog.csdn.net/wo541075754/article/details/50696841
1,問題描述
使用 H5 開發了一個本地應用,通過 ajax 請求遠端伺服器(後臺是 JAVA )上的資料時報錯。
XMLHttpRequest cannot load http://26.47.129.58:8090/MCDEVICE/android/login.action?userInfor.loginCode=an&userInfor.loginPassword=an.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8000' is therefore not allowed access.
![](http://filesimg.111cn.net/2016/09/14/image57d8f010e77d85.09579651.jpg)
2,原因分析
這個與安全機制有關,預設情況下是不允許跨域呼叫的。
3,問題解決
如果服務端是 JAVA 開發的,新增如下設定允許跨域即可。
response.setHeader("Access-Control-Allow-Origin", "*");
新增位置可以在下面三處任選一個。
(1)可以在過濾器 filter 中的 dofilter() 方法設定。
(2)可以在 servlet 的 get 或者 post 方法裡面設定。
(3)可以放在訪問的 jsp 頁面第一行。