鍍金池/ 問答/HTML5  PHP  HTML/ 跨域JSONP的疑問

跨域JSONP的疑問

1,使用跨域JSONP的時候,需要取的數(shù)據(jù)有不一定是fn([。。。])這樣的格式的,這不是取數(shù)據(jù)的時候能控制的?。坑锌赡苣闳カ@取的時候得到的是[。。。]就只是一個數(shù)組,那跨域JSONP的方式不就失敗了?
2,怎么樣算是同一個域名,這視頻里面沒講清楚?。吭趺礃佑兴闶遣煌挠蛎??

回答
編輯回答
老梗

https://segmentfault.com 前面的一個像素點都不能變就是同域

2018年4月10日 07:12
編輯回答
嫑吢丕

JSONP的原理是script標簽的src可以是任意來源,最簡單的理解:用cdn,http://apps.bdimg.com/libs/jq...

這樣在你的頁面上就有jquery環(huán)境了,如果jquery里面有個方法調(diào)用是

art('123');

那么,script引用會立馬執(zhí)行art這個方法,但是這個方法在jquery包里面沒有,就會出錯,
所以,在引用jquery之前(方法的位置無所謂,只有環(huán)境里面有這個方法)寫好一個方法:

//這個方法寫好了,沒有執(zhí)行,是上面的jquery包來調(diào)用這個方法
function art(msg){
    alert(msg)
}

總結(jié)

JSONP就是一個調(diào)方法的術(shù)語

你應(yīng)該有服務(wù)器的管理權(quán)限,可以自定義調(diào)哪些方法,要給方法傳什么參數(shù),
而大多時候是別人的服務(wù)器,只能按照他給出的方法名稱,我們在本地去實現(xiàn)他的方法(這種居多)

如果只能得到一串JSON,如:

{id:1,text:2,data:[{name:"",value:1},{name:"",value:1}]}

這個東西它運行了,就沒了,你沒辦法再次得到這個對象。

2017年11月1日 02:38
編輯回答
北城荒

同域名,同端口,同協(xié)議也叫瀏覽器的同源策略,要使用JSONP跨域訪問,要指定回調(diào)函數(shù),跨域失敗不一定是JSONP的問題,還有就是人家就是不讓你訪問

2018年4月10日 12:25
編輯回答
解夏

如果沒有回調(diào)函數(shù),那就不叫jsonp。只有數(shù)據(jù),就只能看著,干瞪眼

2017年9月27日 17:44
編輯回答
祉小皓

來自同一個地址的就是同域

2018年2月22日 16:56
編輯回答
尤禮

首先,回答你第一個問題,關(guān)于jsonp獲取數(shù)據(jù)得到的是一個單純的數(shù)組的話,那就證明這個數(shù)據(jù)不可以使用jsonp來跨域獲取,所以我們還有其他的跨域方式可以訪問,比如cors,window.name,服務(wù)器代理,個人比較推薦服務(wù)器代理模式來訪問你想得到的數(shù)據(jù),這個是沒有后端的限制的,因為服務(wù)器之間不存在跨域問題,
然后回答你第二個問題,關(guān)于什么是同域名,跨域的含義是,域名不同,協(xié)議不同,端口不同,https/http代表的就是協(xié)議,域名就是協(xié)議后面的內(nèi)容

2017年7月6日 05:38