1、同源的概念:
只有在兩個網(wǎng)頁的協(xié)議、域名、端口號都相同的情況下,這兩個頁面才是同源的。
2、同源策略限制的能力?
非同源的兩個頁面,不能互相訪問對方設(shè)置的本地存儲數(shù)據(jù)、不能互相操作對方的DOM、不能互相發(fā)送ajax請求。
3、什么是‘跨域’?
在一臺服務(wù)器的頁面中,請求另外一臺服務(wù)器的數(shù)據(jù)。這種行為就是跨域(兩個非同源服務(wù)器互相請求數(shù)據(jù))。
4、JSONP
1)JSONP的本質(zhì):
1、利用標(biāo)簽的src屬性可以加載任意服務(wù)器的接口內(nèi)容的特性,把要請求的跨域服務(wù)器接口設(shè)置在該src屬性中,并憑借一個回調(diào)函數(shù)作為參數(shù);
2、在服務(wù)器端,收到了該請求后,取出傳進(jìn)來的函數(shù)名,拼接成函數(shù)執(zhí)行的形式,把前端需要的數(shù)據(jù)設(shè)置在函數(shù)參數(shù)中,一塊返回給前端;
3、 前端在收到了服務(wù)器返回的函數(shù)執(zhí)行代碼后,開始觸發(fā)回調(diào)函數(shù),在回到函數(shù)中就可以獲取到想要的數(shù)據(jù)了。
// 1、創(chuàng)建script標(biāo)簽
var scriptTag = document.createElement('script');
// 2、設(shè)置標(biāo)簽類型
scriptTag.type = 'text/javascript';
// 3、設(shè)置請求的接口
scriptTag.src = 'http://10.0.153.197:8888/news?callback=getData';
// 4、拼接標(biāo)簽進(jìn)文檔流
window.onload = function() {
document.head.appendChild(scriptTag);
}
// 設(shè)置回調(diào)函數(shù)
function getData (data) {
console.log(data);
}