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

跨域JSONP的疑問

1,使用跨域JSONP的時(shí)候,需要取的數(shù)據(jù)有不一定是fn([。。。])這樣的格式的,這不是取數(shù)據(jù)的時(shí)候能控制的???有可能你去獲取的時(shí)候得到的是[。。。]就只是一個(gè)數(shù)組,那跨域JSONP的方式不就失敗了?
2,怎么樣算是同一個(gè)域名,這視頻里面沒講清楚???怎么樣有算是不同的域名?

回答
編輯回答
老梗

https://segmentfault.com 前面的一個(gè)像素點(diǎn)都不能變就是同域

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

JSONP的原理是script標(biāo)簽的src可以是任意來源,最簡(jiǎn)單的理解:用cdn,http://apps.bdimg.com/libs/jq...

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

art('123');

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

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

總結(jié)

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

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

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

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

這個(gè)東西它運(yùn)行了,就沒了,你沒辦法再次得到這個(gè)對(duì)象。

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
編輯回答
祉小皓

來自同一個(gè)地址的就是同域

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

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

2017年7月6日 05:38