摘要:遇到了前端跨域請(qǐng)求的問(wèn)題。所以機(jī)智的我想到了,這家伙不就是拿來(lái)搞反向代理的嗎真是機(jī)智如我有了這個(gè)思路,做起來(lái)就簡(jiǎn)單了。直接在監(jiān)聽(tīng)端口的中添加一個(gè)重新加載然后就把之前的跨域請(qǐng)求變成了的非跨域請(qǐng)求。
在慕課網(wǎng)上看了高并發(fā)的課程,準(zhǔn)備用spring+Mybaits來(lái)開(kāi)發(fā)新的項(xiàng)目。遇到了前端跨域請(qǐng)求的問(wèn)題。
服務(wù)器上nginx+tomcat,其中nginx監(jiān)聽(tīng)80端口,tomcat監(jiān)聽(tīng)8080端口。
因?yàn)閷?duì)前端不熟悉,以為用ajax就可以不需要callback,然而前端的同學(xué)說(shuō)不跨域的情況下才不需要callback,讓我在返回的json里加上。可是我剛剛學(xué)會(huì)了最基本的spring-mvc用法,根本不知道怎么加上callback
網(wǎng)上到時(shí)找到一些可行的代碼,差不多這個(gè)樣子:
來(lái)源: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(); //這個(gè)拼接是重點(diǎn)。。。 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(); } }
然而這樣改動(dòng)對(duì)我來(lái)說(shuō)簡(jiǎn)直是傷筋動(dòng)骨,因?yàn)槲矣刑嗟?b>URL映射,修改的成本太大。
所以機(jī)智的我想到了nginx,這家伙不就是拿來(lái)搞反向代理的嗎?真是機(jī)智如我
有了這個(gè)思路,做起來(lái)就簡(jiǎn)單了。直接在監(jiān)聽(tīng)80端口的server中添加一個(gè)location:
location /myApp { proxy_pass http://localhost:8080/myApp; }
重新加載nginx:
{NGINX_HOME}/sbin/nginx -s reload
然后就把之前http://site:8080/myApp的跨域請(qǐng)求變成了http://site/myApp的非跨域請(qǐng)求。
好吧,都是我猜的,等前端同學(xué)來(lái)驗(yàn)證我的想法了
忘了更新了
下午實(shí)驗(yàn)課自己寫了個(gè)ajax請(qǐng)求試了下,這個(gè)思路是沒(méi)有問(wèn)題的
$.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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/39305.html
摘要:此外,其也能夠提供強(qiáng)大的反向代理功能。是由為俄羅斯訪問(wèn)量第二的站點(diǎn)開(kāi)發(fā)的,第一個(gè)公開(kāi)版本發(fā)布于年月日。 keepalived+nginx 實(shí)現(xiàn)高可用雙機(jī)熱備 + 負(fù)載均衡架構(gòu) 1 準(zhǔn)備4個(gè)ubuntu16.04虛擬機(jī)(啟用網(wǎng)卡二并使用橋接模式):A服務(wù)器:192.168.0.103 主B服務(wù)器:192.168.0.104 主(備) 前端工程師學(xué)習(xí) Nginx ...
摘要:三反向代理解決的原理將安裝在本地,然后將項(xiàng)目部署于下,這樣訪問(wèn)本地項(xiàng)目時(shí)用本地項(xiàng)目即可訪問(wèn)。這樣瀏覽器之間的請(qǐng)求完全滿足瀏覽器域名協(xié)議端口相同的同源策略,可在不改變后臺(tái)接口的情況下避免跨域問(wèn)題。 一、問(wèn)題背景說(shuō)明: 編寫移動(dòng)前端頁(yè)面時(shí)需要訪問(wèn)后臺(tái)系統(tǒng)接口。前端項(xiàng)目在本地(個(gè)人辦公電腦)開(kāi)發(fā),后臺(tái)接口存放后生產(chǎn)的后臺(tái)服務(wù)器,本地的ajax請(qǐng)求無(wú)法直接訪問(wèn)后臺(tái)接口,也就是遇到了跨域問(wèn)題...
摘要:三反向代理解決的原理將安裝在本地,然后將項(xiàng)目部署于下,這樣訪問(wèn)本地項(xiàng)目時(shí)用本地項(xiàng)目即可訪問(wèn)。這樣瀏覽器之間的請(qǐng)求完全滿足瀏覽器域名協(xié)議端口相同的同源策略,可在不改變后臺(tái)接口的情況下避免跨域問(wèn)題。 一、問(wèn)題背景說(shuō)明: 編寫移動(dòng)前端頁(yè)面時(shí)需要訪問(wèn)后臺(tái)系統(tǒng)接口。前端項(xiàng)目在本地(個(gè)人辦公電腦)開(kāi)發(fā),后臺(tái)接口存放后生產(chǎn)的后臺(tái)服務(wù)器,本地的ajax請(qǐng)求無(wú)法直接訪問(wèn)后臺(tái)接口,也就是遇到了跨域問(wèn)題...
閱讀 1634·2023-04-26 02:11
閱讀 2979·2023-04-25 16:18
閱讀 3711·2021-09-06 15:00
閱讀 2630·2019-08-30 15:55
閱讀 1934·2019-08-30 13:20
閱讀 2051·2019-08-26 18:36
閱讀 3121·2019-08-26 11:40
閱讀 2538·2019-08-26 10:11