angular的跨域請求

get請求

1,jsonp跨域

<script>
		angular.module("myApp",[])
	        .controller("myCtrl",['$scope','$http',function($scope,$http){
	            $http.get('http://lolapi.games-cube.com/champion?callback=JSON_CALLBACK',{headers:{"DAIWAN-API-TOKEN":"C37EA-3B332-C2E3A-7A1FB"}}).then(function(data){
	            	console.log(data);
	            })
	        }]);
</script>

這讓我聯想到曾今在面試的時候,面試官問的一個問題:“爲什麼jsonp的跨域請求並不是真正的ajax?”這是爲什麼呢?其實我是這樣理解的,jsonp跨域請求的是服務器後臺的callback函數接口,後臺通過callback函數把數據包裹着傳送過來,這個過程並沒有發起ajax請求(ajax請求,會走五步:0,new XMLHttpRequst;1,open();2 ,send();3,onreadystatusChange();4,完成),所以說jsonp的跨域請求並不是真正的ajax。純屬個人見解,如有錯誤請指正。

對比jq的ajax跨域:

$.ajax({
    cache:true,//是否緩存
    url:"請求的地址",
    type:"GET",
    dataType:"JSONP",
    asyn:true,//是否異步 true:異步 false:同步
    data:{
        name:"XXX"
    }//添加到地址欄中後面的數據
})

2、post和get請求類似


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章