成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

利用nginx反向代理來避免ajax跨域請求

CompileYouth / 1529人閱讀

摘要:遇到了前端跨域請求的問題。所以機智的我想到了,這家伙不就是拿來搞反向代理的嗎真是機智如我有了這個思路,做起來就簡單了。直接在監(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){
        
        
        Map map = 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

相關(guān)文章

  • Nginx

    摘要:此外,其也能夠提供強大的反向代理功能。是由為俄羅斯訪問量第二的站點開發(fā)的,第一個公開版本發(fā)布于年月日。 keepalived+nginx 實現(xiàn)高可用雙機熱備 + 負(fù)載均衡架構(gòu) 1 準(zhǔn)備4個ubuntu16.04虛擬機(啟用網(wǎng)卡二并使用橋接模式):A服務(wù)器:192.168.0.103 主B服務(wù)器:192.168.0.104 主(備) 前端工程師學(xué)習(xí) Nginx ...

    syoya 評論0 收藏0
  • 通過nginx反向代理解決前端訪問的跨域問題

    摘要:三反向代理解決的原理將安裝在本地,然后將項目部署于下,這樣訪問本地項目時用本地項目即可訪問。這樣瀏覽器之間的請求完全滿足瀏覽器域名協(xié)議端口相同的同源策略,可在不改變后臺接口的情況下避免跨域問題。 一、問題背景說明: 編寫移動前端頁面時需要訪問后臺系統(tǒng)接口。前端項目在本地(個人辦公電腦)開發(fā),后臺接口存放后生產(chǎn)的后臺服務(wù)器,本地的ajax請求無法直接訪問后臺接口,也就是遇到了跨域問題...

    dongxiawu 評論0 收藏0
  • 通過nginx反向代理解決前端訪問的跨域問題

    摘要:三反向代理解決的原理將安裝在本地,然后將項目部署于下,這樣訪問本地項目時用本地項目即可訪問。這樣瀏覽器之間的請求完全滿足瀏覽器域名協(xié)議端口相同的同源策略,可在不改變后臺接口的情況下避免跨域問題。 一、問題背景說明: 編寫移動前端頁面時需要訪問后臺系統(tǒng)接口。前端項目在本地(個人辦公電腦)開發(fā),后臺接口存放后生產(chǎn)的后臺服務(wù)器,本地的ajax請求無法直接訪問后臺接口,也就是遇到了跨域問題...

    paulquei 評論0 收藏0

發(fā)表評論

0條評論

CompileYouth

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<