国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

利用nginx反向代理來(lái)避免ajax跨域請(qǐng)求

CompileYouth / 1498人閱讀

摘要:遇到了前端跨域請(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){
        
        
        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();
            //這個(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

相關(guān)文章

  • Nginx

    摘要:此外,其也能夠提供強(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 ...

    syoya 評(píng)論0 收藏0
  • 通過(guò)nginx反向代理解決前端訪問(wèn)的跨域問(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)題...

    dongxiawu 評(píng)論0 收藏0
  • 通過(guò)nginx反向代理解決前端訪問(wèn)的跨域問(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)題...

    paulquei 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

CompileYouth

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<