跨域的問(wèn)題
get:一般是獲取數(shù)據(jù):在頁(yè)面中輸入的時(shí)候提交后直接返回
post:一般是發(fā)送數(shù)據(jù):form表單中用于提交注冊(cè)暗紋的
1什么是跨域?
不同域名之間進(jìn)行數(shù)據(jù)的訪問(wèn)衫嵌。會(huì)造成跨域問(wèn)題读宙,導(dǎo)致的結(jié)果就是拿不到數(shù)據(jù)
如何區(qū)分是否跨域了?
協(xié)議楔绞,端口號(hào)论悴,主機(jī)地址掖棉,是否一樣,不同源就屬于跨域
2.如何解決跨域問(wèn)題膀估?
2.1是誰(shuí)造成的跨域?
是瀏覽器造成的跨域耻讽,其實(shí)數(shù)據(jù)已經(jīng)到了瀏覽器中察纯,,只不過(guò)瀏覽器沒(méi)有把數(shù)據(jù)給你针肥。
2.2為什要有跨域饼记?
出于安全考慮。默認(rèn)情況下不允許外界的瀏覽器向本網(wǎng)站中注入數(shù)據(jù))
3.如何解決跨域慰枕?
使用jsonp jsonp是一種解決方案
4.jsonp是ajax碼具则?
jsonp 是解決跨域的一種方案,ajax是js異步請(qǐng)求的一種技術(shù)(借助xhr對(duì)象)
5具帮。說(shuō)以下jsonp解決跨域的原理博肋?(必須是前后端配合,如果后端不接受參數(shù)蜂厅,也沒(méi)法運(yùn)行)
先了解瀏覽器解析js的機(jī)制匪凡。
如果服務(wù)器返回的是js代碼,會(huì)立馬執(zhí)行該內(nèi)容掘猿。
src:來(lái)請(qǐng)求數(shù)據(jù)是不存在跨域的的問(wèn)題的
(1.在本地中定義一個(gè)方法fn
2.定義<script src='myPhpFile.php?callbask=gxq> 在發(fā)送請(qǐng)求的時(shí)候病游,把函數(shù)的名稱(chēng)傳遞給服務(wù)器
3.要在服務(wù)器當(dāng)中接受傳遞的參數(shù), $fn = $_GET['callback'].
4.服務(wù)echo 方法名稱(chēng)+(參數(shù))稠通。
function gxq(arg){
alert('服務(wù)的內(nèi)容------‘+arg);
}
<script src ='script src='myPhpFile.php?callbask=gxq></script>
6.angular的跨域衬衬!
方法1
先注入¥http服務(wù)
¥http({
url:’‘
method:'jsonp';
params:{
callback:'JSON -CALLBACK'///固定寫(xiě)法
}
})
方法2:
橋接:
在服務(wù)器上用url導(dǎo)入數(shù)據(jù)
$url = ''http://api.douban......
echo file_get_content($url);
然后服務(wù)器把請(qǐng)求的數(shù)據(jù)返回給angular