摘要:遇到了前端跨域請求的問題。所以機智的我想到了,這家伙不就是拿來搞反向代理的嗎真是機智如我有了這個思路,做起來就簡單了。直接在監(jiān)聽端口的中添加一個重新加載然后就把之前的跨域請求變成了的非跨域請求。
在慕課網(wǎng)上看了高并發(fā)的課程,準(zhǔn)備用spring+Mybaits來開發(fā)新的項目。遇到了前端跨域請求的問題。
服務(wù)器上nginx+tomcat,其中nginx監(jiān)聽80端口,tomcat監(jiān)聽8080端口。
因為對前端不熟悉,以為用ajax就可以不需要callback,然而前端的同學(xué)說不跨域的情況下才不需要callback,讓我在返回的json里加上??墒俏覄倓倢W(xué)會了最基本的spring-mvc用法,根本不知道怎么加上callback
網(wǎng)上到時找到一些可行的代碼,差不多這個樣子:
來源:http://quarterlifeforjava.ite...
@RequestMapping(method=RequestMethod.GET,value="getProjectStatusList",produces="text/html;charset=UTF-8") @ResponseBody public String getProjectStatusList(HttpServletRequest request, HttpServletResponse response){ Mapmap = new HashMap (); try{ String callback = request.getParameter("callback"); //System.out.println("token:"+request.getHeader("token")); List list = ss.getProjectStatusList(); map.put("status", "success"); map.put("data", list); ObjectMapper mapper = new ObjectMapper(); //這個拼接是重點。。。 String result = callback+"("+mapper.writeValueAsString(map)+")"; //String result = mapper.writeValueAsString(map); return result; }catch(Exception e){ JSONObject jo = new JSONObject(); jo.put("status", "fail"); jo.put("data", e.getMessage()); return jo.toString(); } }
然而這樣改動對我來說簡直是傷筋動骨,因為我有太多的URL映射,修改的成本太大。
所以機智的我想到了nginx,這家伙不就是拿來搞反向代理的嗎?真是機智如我
有了這個思路,做起來就簡單了。直接在監(jiān)聽80端口的server中添加一個location:
location /myApp { proxy_pass http://localhost:8080/myApp; }
重新加載nginx:
{NGINX_HOME}/sbin/nginx -s reload
然后就把之前http://site:8080/myApp的跨域請求變成了http://site/myApp的非跨域請求。
好吧,都是我猜的,等前端同學(xué)來驗證我的想法了
忘了更新了
下午實驗課自己寫了個ajax請求試了下,這個思路是沒有問題的
$.ajax({url : "/myApp/list", async : true}).success( function (data) { console.log(data); });
打印結(jié)果:
Object {data: Array[8], success: true, errorMsg: null}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39305.html
摘要:三反向代理解決的原理將安裝在本地,然后將項目部署于下,這樣訪問本地項目時用本地項目即可訪問。這樣瀏覽器之間的請求完全滿足瀏覽器域名協(xié)議端口相同的同源策略,可在不改變后臺接口的情況下避免跨域問題。 一、問題背景說明: 編寫移動前端頁面時需要訪問后臺系統(tǒng)接口。前端項目在本地(個人辦公電腦)開發(fā),后臺接口存放后生產(chǎn)的后臺服務(wù)器,本地的ajax請求無法直接訪問后臺接口,也就是遇到了跨域問題...
摘要:三反向代理解決的原理將安裝在本地,然后將項目部署于下,這樣訪問本地項目時用本地項目即可訪問。這樣瀏覽器之間的請求完全滿足瀏覽器域名協(xié)議端口相同的同源策略,可在不改變后臺接口的情況下避免跨域問題。 一、問題背景說明: 編寫移動前端頁面時需要訪問后臺系統(tǒng)接口。前端項目在本地(個人辦公電腦)開發(fā),后臺接口存放后生產(chǎn)的后臺服務(wù)器,本地的ajax請求無法直接訪問后臺接口,也就是遇到了跨域問題...
閱讀 1650·2023-04-26 02:11
閱讀 2993·2023-04-25 16:18
閱讀 3722·2021-09-06 15:00
閱讀 2638·2019-08-30 15:55
閱讀 1943·2019-08-30 13:20
閱讀 2060·2019-08-26 18:36
閱讀 3134·2019-08-26 11:40
閱讀 2553·2019-08-26 10:11