溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

自己的項目結(jié)合MVC實現(xiàn)ajax跨域調(diào)用

發(fā)布時間:2020-06-26 06:08:26 來源:網(wǎng)絡(luò) 閱讀:452 作者:fanpan26 欄目:編程語言

  好久沒寫東西了,自我檢討一下,寫不完這篇不下班?。?/p>

  最近在做一個項目模塊通用的分享功能插件,由于各個模塊調(diào)用所以會出現(xiàn)跨域問題,正好之前同事解決過,于是自己親身實踐把這次解決問題的經(jīng)歷記錄下來。閑言少敘,書歸正傳~


   首先,項目背景,一個基于jquery的分享插件開發(fā),自己也是嘗試著寫這么個東西,第一次寫,質(zhì)量肯定差,下次博文把這次開發(fā)經(jīng)歷寫出來。由于這次解決ajax跨域的方法很簡單,我就粘貼代碼簡單說明一下。

  第一步:編寫后臺程序,MVC下代碼如下:

 

     //這是一個獲取某個用戶的通訊錄分組方法
      public ContentResult GetContactGroup(int? UserID)
        {
            var list = addressBook.GetContactGroup(UserID);
            return CallbackApi(list);
        }
        //將list轉(zhuǎn)換為Json格式
      private ContentResult CallbackApi(object data, bool isJson = false)
        {
            string callback = Request.QueryString["callback"];
            return Content(string.Format("{0}({1})", callback, isJson ? data : serializer.Serialize(data), "text/plain", System.Text.Encoding.UTF8));
        }

好,上述代碼很簡單,下面看一下前端代碼:

 $.getJSON("http://xxxxx/shareresource/GetContactGroup?UserID=" + this.userid + "&callback=?", function (data) { //自己的業(yè)務(wù)處理});

代碼很簡單,就是用Jquery的 getJSON方法,傳參數(shù)把callback傳過去,程序運行結(jié)果如下:


自己的項目結(jié)合MVC實現(xiàn)ajax跨域調(diào)用

那么,這樣 function(data)就相當于執(zhí)行這個方法了。然后做data處理就OK了,是不是很簡單啊。


總結(jié):1.前提是兩個域名的項目都是自己的,這樣可以做callback參數(shù)傳參和接收。


附錄:插件效果

插件域名:xyyresource.app.XXX.cn(涉及公司項目保密,暫不透漏)

調(diào)用地址    http://localhost:4081/#

實現(xiàn)了跨域名調(diào)用,那么效果如下:

自己的項目結(jié)合MVC實現(xiàn)ajax跨域調(diào)用

紅框內(nèi)的數(shù)據(jù)均是從另一個域名通過跨域讀取讀來的,那么這樣的話,只要把插件js引用上,任何域名都可以使用這個插件,這樣就實現(xiàn)了插件共享效果了。并且可維護性增強。下一期,我將把分享插件開發(fā)過程記錄下來。就寫到這吧,雖然沒人看,但還是對自己的總結(jié)。繼續(xù)加油??!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI