亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

angular.js中解決跨域問題的三種方式

 更新時(shí)間:2017年07月12日 11:04:31   作者:北城以南  
跨域,前端開發(fā)中經(jīng)常遇到的問題,下面這篇文章主要給大家介紹了關(guān)于angular.js中解決跨域問題的三種方式,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。

前言

開始本文之前,大家應(yīng)該首先了解,協(xié)議、主機(jī)名和端口號(hào)相同叫同源。同源策略允許頁面從同一個(gè)站點(diǎn)加載和執(zhí)行特定的腳本。站外其他來源的腳本同頁面的交互則被嚴(yán)格限制。

要解決這個(gè)問題就需要跨域,本文介紹解決angular中的跨域的三種方式:

一、JSONP

JSONP的原理是通過 <script> 標(biāo)簽發(fā)起一個(gè)GET請(qǐng)求來取代XHR請(qǐng)求。JSONP生成一個(gè)<script> 標(biāo)簽并插到DOM中,然后瀏覽器會(huì)接管并向 src 屬性所指向的地址發(fā)送請(qǐng)求。當(dāng)服務(wù)器返回請(qǐng)求時(shí), 響應(yīng)結(jié)果會(huì)被包裝成一個(gè)JavaScript函數(shù), 并由該請(qǐng)求所對(duì)應(yīng)的回調(diào)函數(shù)調(diào)用。

AngularJS在 $http 服務(wù)中提供了一個(gè)JSONP輔助函數(shù)。 通過 $http 服務(wù)的 jsonp 方法可以發(fā)送請(qǐng)求,如下所示:

  $http
  .jsonp("https://api.github.com?callback=JSON_CALLBACK") .success(function(data) {
  // 數(shù)據(jù)
  });

因?yàn)檎?qǐng)求是由 <script> 標(biāo)簽發(fā)送的,所以這個(gè)方法只能發(fā)送GET請(qǐng)求。

二、使用 CORS
CORS規(guī)范簡單地?cái)U(kuò)展了標(biāo)準(zhǔn)的XHR對(duì)象,以允許JavaScript發(fā)送跨域的XHR請(qǐng)求。它會(huì)通過預(yù)檢查(preflight)來確認(rèn)是否有權(quán)限向目標(biāo)服務(wù)器發(fā)送請(qǐng)求。預(yù)檢查可以讓服務(wù)器接受或拒絕來自全部服務(wù)器、特定服務(wù)器或一組服務(wù)器的請(qǐng)求。這意味著客戶端和服務(wù)端應(yīng)用需要協(xié)同工作,才能向客戶端或服務(wù)器發(fā)送數(shù)據(jù)。

首先需要告訴AngularJS我們正在使用CORS。使用 config()方法在應(yīng)用模塊上設(shè)置兩個(gè)參數(shù)以達(dá)到此目的。

angular.module('myApp', [])
.config(function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers
.common['X-Requested-With'];
});

接下來,需要服務(wù)端設(shè)置響應(yīng)頭,這個(gè)需要和后端人員鏡像
Access-Control-Allow-Origin 這個(gè)頭的值可以是與請(qǐng)求頭的值相呼應(yīng)的值,為*表示允許接收從任何來源發(fā)來的請(qǐng)求。
Access-Control-Allow-Credentials 默認(rèn)情況下,CORS請(qǐng)求不會(huì)發(fā)送cookie。如果服務(wù)器返回了這個(gè)頭,那么就可以通過將withCredentials 設(shè)置為 true 來將cookie同請(qǐng)求一同發(fā)送出去。

接下來就可以使用下面的請(qǐng)求進(jìn)行跨域請(qǐng)求了

$http
.get("https://api.github.com")
.success(function(data) {
// 數(shù)據(jù)
});

三、服務(wù)器端代理這種方式更多的應(yīng)該是后端來做的實(shí)現(xiàn)向所有服務(wù)器發(fā)送請(qǐng)求的最簡單方式是使用服務(wù)器端代理。

這個(gè)服務(wù)器和頁面處在同一個(gè)域中(或者不在同一個(gè)域中但支持CORS) ,做為所有遠(yuǎn)程資源的代理??梢院唵蔚赝ㄟ^使用本地服務(wù)器來代替客戶端向外部資源發(fā)送請(qǐng)求, 并將響應(yīng)結(jié)果返回給客戶端。通過這種方式,老式瀏覽器不必使用需要發(fā)送額外請(qǐng)求的CORS(只有現(xiàn)代瀏覽器支持CORS)也能發(fā)送跨域請(qǐng)求,并且可以在瀏覽器中采用標(biāo)準(zhǔn)的安全策略。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • AngularJS 工作原理詳解

    AngularJS 工作原理詳解

    本文主要介紹AngularJS 工作原理,這里整理了相關(guān)資料及示例代碼,有興趣的小伙伴可以參考下
    2016-08-08
  • angularJS的radio實(shí)現(xiàn)單項(xiàng)二選一的使用方法

    angularJS的radio實(shí)現(xiàn)單項(xiàng)二選一的使用方法

    下面小編就為大家分享一篇angularJS的radio實(shí)現(xiàn)單項(xiàng)二選一的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • angular中的post請(qǐng)求處理示例詳解

    angular中的post請(qǐng)求處理示例詳解

    這篇文章主要給大家介紹了關(guān)于angular中post請(qǐng)求處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用angular具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • AngularJS基礎(chǔ) ng-mousemove 指令簡單示例

    AngularJS基礎(chǔ) ng-mousemove 指令簡單示例

    本文主要介紹AngularJS ng-mousemove 指令,這里幫大家整理了ng-mousemove 指令的詳細(xì)資料,并附有示例代碼,有需要的朋友參考下
    2016-08-08
  • angularjs中使用ng-bind-html和ng-include的實(shí)例

    angularjs中使用ng-bind-html和ng-include的實(shí)例

    下面小編就為大家?guī)硪黄猘ngularjs中使用ng-bind-html和ng-include的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • 說說AngularJS中的$parse和$eval的用法

    說說AngularJS中的$parse和$eval的用法

    本篇文章主要介紹了說說AngularJS中的$parse和$eval的用法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Angular中支持SCSS的方法

    Angular中支持SCSS的方法

    這篇文章主要介紹了Angular中支持SCSS的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Angualrjs 表單驗(yàn)證的兩種方式(失去焦點(diǎn)驗(yàn)證和點(diǎn)擊提交驗(yàn)證)

    Angualrjs 表單驗(yàn)證的兩種方式(失去焦點(diǎn)驗(yàn)證和點(diǎn)擊提交驗(yàn)證)

    AngularJS提供了表單驗(yàn)證,但是驗(yàn)證的過程交互體驗(yàn)很不好,比如重設(shè)密碼,重復(fù)密碼的時(shí)候一鍵入就會(huì)提示密碼不正確?,F(xiàn)在小編給大家整理了兩種方法,需要的的朋友參考下吧
    2017-05-05
  • angularJs中跳轉(zhuǎn)到指定的錨點(diǎn)實(shí)例($anchorScroll)

    angularJs中跳轉(zhuǎn)到指定的錨點(diǎn)實(shí)例($anchorScroll)

    今天小編就為大家分享一篇angularJs中跳轉(zhuǎn)到指定的錨點(diǎn)實(shí)例($anchorScroll),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Angular開發(fā)者指南之入門介紹

    Angular開發(fā)者指南之入門介紹

    本篇文章主要介紹了Angular開發(fā)者指南的入門知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03

最新評(píng)論