SSM(一)跨域傳輸

サイレントマジョリティー

前言

今天遇到ajax跨域請求的問題,在此感謝crossoverJie的文章,幫忙下解決了該問題.同時也接觸到了簡書胞谭。
感覺自己應(yīng)該在簡書上記錄下,在開發(fā)過程中的問題和經(jīng)驗赞警。

什么是跨域問題?

  1. 只要協(xié)議岩瘦、域名、端口有任何一個不同震庭,都被當作是不同的域.。
  2. 只要是在不同域中是無法進行通信的你雌。

基于以上的的出發(fā)點器联,我們又有跨域共享資源的需求(譬如現(xiàn)在流行的前后端分離之后分別部署的情況),本文所采用的解決辦法是JSONP婿崭,說到JSONP就會首先想到JSON拨拓。雖然只有一字之差但意義卻完全不一樣,首先科普一下JSON氓栈。

JSON

其實現(xiàn)在JSON已經(jīng)是相當流行了渣磷,只要涉及到前后端的數(shù)據(jù)交互大都都是采用的JSON(不管是web還是androidIOS)

JSON的優(yōu)點:

  1. 基于純文本,跨平臺傳遞極其簡單授瘦;
  2. Javascript原生支持醋界,后臺語言幾乎全部支持竟宋;
  3. 輕量級數(shù)據(jù)格式,占用字符數(shù)量極少形纺,特別適合互聯(lián)網(wǎng)傳遞丘侠;
  4. 可讀性較強,雖然比不上XML那么一目了然逐样,但在合理的依次縮進之后還是很容易識別的蜗字;
  5. 容易編寫和解析,當然前提是你要知道數(shù)據(jù)結(jié)構(gòu)脂新;

JSONP

好了挪捕,終于可以談?wù)?code>JSONP了。之前說道JSONP是用來解決跨域問題的争便,那么他是如何解決的呢级零。經(jīng)過我們開發(fā)界的前輩們發(fā)現(xiàn),HTML中擁有SRC屬性的標簽都不受跨域的影響滞乙,比如<script>妄讯,<iframe>,<img>等標簽。
由于JS原生支持JSON的解析酷宵,于是我們采用<script>的方式來處理跨域解析,代碼如下一看就明白躬窜。

HTML

<html lang="zh">
<head>
    <script type="text/javascript">
        $(document).ready(function(){
            $.ajax({
                type: "get",
                async: false,
                url: url,
                dataType: "jsonp",
                jsonp: "callback",//一般默認為:callback
                jsonpCallback:"getUser",//自定義的jsonp回調(diào)函數(shù)名稱浇垦,默認為jQuery自動生成的隨機函數(shù)名,也可以寫"?"荣挨,jQuery會自動為你處理數(shù)據(jù)
                success: function(json){
                    alert(json);
                },
                error: function(){
                    alert('error');
                }
            });
        });
    </script>
</head>
<body>
</body>
</html>

其中我們采用了JQuery給我封裝好的函數(shù)男韧,這樣就可以自動幫我們解析了。
我們所傳遞的callback參數(shù)帶著查詢的數(shù)據(jù)又原封不動的返回給我們了默垄,這樣的話即使我們不使用JQuery給我封裝好的函數(shù)此虑,我們自定義一個和callback名稱一樣的函數(shù)一樣是可以解析其中的數(shù)據(jù)的,只是Jquery幫我們做了而已口锭。

Controller

    @RequestMapping(value = "/test",method = { RequestMethod.GET })
    @ResponseBody
    public Object test(String callback, String userId) throws IOException {
         //數(shù)據(jù)
         User user = userService.selectById(userId);
        JSONPObject jsonpObject = new JSONPObject(callback,user) ;
        return jsonpObject ;
    }

后端采用了jackson中的JSONPObject這個類的一個構(gòu)造方法朦前,只需要將callback字段和需要轉(zhuǎn)成JSON字符串的對象放進去即可。
需要主要的是需要使用@ResponseBody注解才能成功返回鹃操。

總結(jié)

JSONP只支持GET方式的HTTP請求韭寸;
可以在 xml里配置jsonp返回,并注解方法荆隘。
還有 跨域資源共享 CORS 也可以解決跨域請求問題恩伺。

感謝

在此感謝crossoverJie作者的文章,SSM(六)跨域傳輸對我有很大的啟發(fā)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椰拒,一起剝皮案震驚了整個濱河市晶渠,隨后出現(xiàn)的幾起案子凰荚,更是在濱河造成了極大的恐慌,老刑警劉巖褒脯,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件便瑟,死亡現(xiàn)場離奇詭異,居然都是意外死亡憨颠,警方通過查閱死者的電腦和手機胳徽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爽彤,“玉大人养盗,你說我怎么就攤上這事∈矢荩” “怎么了往核?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嚷节。 經(jīng)常有香客問我聂儒,道長,這世上最難降的妖魔是什么硫痰? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任衩婚,我火速辦了婚禮,結(jié)果婚禮上效斑,老公的妹妹穿的比我還像新娘非春。我一直安慰自己,他們只是感情好缓屠,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布奇昙。 她就那樣靜靜地躺著,像睡著了一般敌完。 火紅的嫁衣襯著肌膚如雪储耐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天滨溉,我揣著相機與錄音什湘,去河邊找鬼。 笑死业踏,一個胖子當著我的面吹牛禽炬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勤家,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腹尖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起热幔,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乐设,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绎巨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體近尚,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年场勤,在試婚紗的時候發(fā)現(xiàn)自己被綠了戈锻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡和媳,死狀恐怖格遭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情留瞳,我是刑警寧澤拒迅,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站她倘,受9級特大地震影響璧微,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜硬梁,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一前硫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荧止,春花似錦开瞭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽个扰。三九已至瓷炮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間递宅,已是汗流浹背娘香。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留办龄,地道東北人烘绽。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像俐填,于是被迫代替她去往敵國和親安接。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容