跨域 && 監(jiān)聽(tīng)對(duì)象改變

跨域

  • 引起跨域的原因:協(xié)議、域名识椰、端口只要有一個(gè)不同都會(huì)導(dǎo)致跨域
解決辦法:
jsonp
  • 通常為了減輕web服務(wù)器的負(fù)載绝葡,我們把js、css腹鹉,img等靜態(tài)資源分離到另一臺(tái)獨(dú)立域名的服務(wù)器上藏畅,在html頁(yè)面中再通過(guò)相應(yīng)的標(biāo)簽從不同域名下加載靜態(tài)資源,而被瀏覽器允許种蘸,基于此原理墓赴,我們可以通過(guò)動(dòng)態(tài)創(chuàng)建script,再請(qǐng)求一個(gè)帶參網(wǎng)址實(shí)現(xiàn)跨域通信
<script>
  var script = document.createElement('script');
  script.type = 'text/javascript';

  // 傳參一個(gè)回調(diào)函數(shù)名給后端航瞭,方便后端返回時(shí)執(zhí)行這個(gè)在前端定義的回調(diào)函數(shù)
  script.src = 'http://www.daxihong.com:8080/login?user=admin&callback=jsonCallback';
  document.head.appendChild(script);

  // 回調(diào)執(zhí)行函數(shù)
  function jsonCallback(res) {
      alert(JSON.stringify(res));
  }
 </script>
CORS
  • CORS是一個(gè)W3C標(biāo)準(zhǔn)诫硕,全稱(chēng)是"跨域資源共享"(Cross-origin resource sharing)跨域資源共享 CORS 詳解】睿看名字就知道這是處理跨域問(wèn)題的標(biāo)準(zhǔn)做法章办。CORS有兩種請(qǐng)求,簡(jiǎn)單請(qǐng)求和非簡(jiǎn)單請(qǐng)求滨彻。
nodejs中間件代理跨域
  • 利用node + webpack + webpack-dev-server代理接口跨域藕届。在開(kāi)發(fā)環(huán)境下,由于vue渲染服務(wù)和接口代理服務(wù)都是webpack-dev-server同一個(gè)亭饵,所以頁(yè)面與代理接口之間不再跨域休偶,無(wú)須設(shè)置headers跨域信息了。后臺(tái)可以不做任何處理辜羊。
  • 配置 webpack.config.js || vue.config.js 文件
module.exports = {
  entry: {},
  module: {},
  ...
  devServer: {
      historyApiFallback: true,
      proxy: [{
          context: '/login',
          target: 'http://www.daxihong.com:8080',  // 代理跨域目標(biāo)接口
          changeOrigin: true,
          secure: false,  // 當(dāng)代理某些https服務(wù)報(bào)錯(cuò)時(shí)用
          cookieDomainRewrite: 'www.daxihong.com'  // 可以為false踏兜,表示不修改
      }],
      noInfo: true
  }
}


js監(jiān)聽(tīng)對(duì)象屬性的改變

  • es5
    對(duì)單個(gè)屬性:假設(shè)是對(duì)user對(duì)象的name屬性進(jìn)行監(jiān)聽(tīng)
Object.defineProperty(user, 'name', {
    set : funtion(value){
               name = value;
                console.log('set: name:' + value)
        }
})

對(duì)多個(gè)屬性進(jìn)行監(jiān)聽(tīng)

Object.defineProperties(obj,{
  a : {
        configurable: true, // 設(shè)置屬性可以更改,默認(rèn)為false
        set : function(value){}
  },      
   b : {
       configurable: true, // 設(shè)置屬性可以更改八秃,默認(rèn)為false
        set : function(value){}
  }
} 
})
  • es6通過(guò)Proxy實(shí)現(xiàn)
    原理就是當(dāng)這個(gè)屬性改變后進(jìn)行一次攔截碱妆,會(huì)得到新的值,記得要將他的新值賦值給那個(gè)要改變的屬性昔驱,布草做的話(huà)就相當(dāng)于沒(méi)有給這個(gè)屬性改變
var peo = { name: 'zhangsan', salary: 27 }
//interceptor 攔截
var interceptor = {
  set: function (recObj, key, value) {
    console.log(key, 'is changed to', value) //name is changed to lisi
    recObj[key] = value
  },
}
//創(chuàng)建代理以進(jìn)行偵聽(tīng)
proxyEngineer = new Proxy(peo, interceptor)
//做一些改動(dòng)來(lái)觸發(fā)代理
proxyEngineer.name = 'lisi'
console.log(peo) //{name: "lisi", salary: 27}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疹尾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子骤肛,更是在濱河造成了極大的恐慌纳本,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腋颠,死亡現(xiàn)場(chǎng)離奇詭異饮醇,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宗挥,“玉大人坛悉,你說(shuō)我怎么就攤上這事∧焉螅” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)毁嗦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)回铛,這世上最難降的妖魔是什么狗准? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任克锣,我火速辦了婚禮,結(jié)果婚禮上腔长,老公的妹妹穿的比我還像新娘袭祟。我一直安慰自己,他們只是感情好捞附,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布巾乳。 她就那樣靜靜地躺著,像睡著了一般鸟召。 火紅的嫁衣襯著肌膚如雪胆绊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天欧募,我揣著相機(jī)與錄音压状,去河邊找鬼。 笑死跟继,一個(gè)胖子當(dāng)著我的面吹牛何缓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播还栓,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼碌廓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了剩盒?” 一聲冷哼從身側(cè)響起谷婆,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辽聊,沒(méi)想到半個(gè)月后纪挎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跟匆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年异袄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玛臂。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烤蜕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出迹冤,到底是詐尸還是另有隱情讽营,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布泡徙,位于F島的核電站橱鹏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜莉兰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一挑围、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糖荒,春花似錦杉辙、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)枫绅。三九已至泉孩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間并淋,已是汗流浹背寓搬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留县耽,地道東北人句喷。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像兔毙,于是被迫代替她去往敵國(guó)和親唾琼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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