|
之前一片日志說(shuō)使用xmlhttprequest獲取服務(wù)數(shù)據(jù)時(shí),在IE下能通過(guò)而在chrome不能通過(guò)的問(wèn)題,今天終于有了一個(gè)答案,這就是所謂的跨域問(wèn)題,什么是跨域呢?我還說(shuō)不清楚,我說(shuō)說(shuō)比較不規(guī)范但是通俗的說(shuō)說(shuō)法吧,比如你使用chrome打開一個(gè)本地的html頁(yè)面,那么我認(rèn)為現(xiàn)在你的機(jī)器就是一個(gè)站點(diǎn),這個(gè)html就是運(yùn)行在這個(gè)站點(diǎn)上,如果你要在這個(gè)html頁(yè)面中通過(guò)xmlhttprequest獲取百度的頁(yè)面源碼信息,就有點(diǎn)跨域的意思,這和你直接在地址欄上輸入www.baidu.com又不一樣,因?yàn)槟菢拥脑挘惝?dāng)前的站點(diǎn)就是百度了,如果百度也在他的主頁(yè)上通過(guò)xmlhttprequest獲取google的頁(yè)面信息,那樣應(yīng)該也算是跨域了吧,但是這個(gè)跨域問(wèn)題在服務(wù)器上是不存在的,你在服務(wù)器上使用urlHttpConnection連接其他站點(diǎn)是允許的。 可以想象,你連接到你自己的服務(wù)器,打開一個(gè)頁(yè)面,如果這個(gè)頁(yè)面要獲取google的數(shù)據(jù),那么這個(gè)頁(yè)面可以向服務(wù)器發(fā)出請(qǐng)求(這個(gè)頁(yè)面和這個(gè)服務(wù)器是同一個(gè)域,我通俗的理解,所以這個(gè)請(qǐng)求沒(méi)問(wèn)題),服務(wù)器根據(jù)請(qǐng)求向google獲取數(shù)據(jù)(這個(gè)是允許的),然后服務(wù)器再將獲取到的數(shù)據(jù)反饋回頁(yè)面,這樣頁(yè)面就獲取到google的數(shù)據(jù)了。 具體代碼怎么寫就不在話下啦! 所以,上一篇遇到的問(wèn)題就是這樣子,最后我是通過(guò)服務(wù)器來(lái)解決這個(gè)問(wèn)題,但至于為什么IE8可以允許我跨域訪問(wèn)我就不清楚了! |
|
|
來(lái)自: 馬踏飛燕連環(huán)腿 > 《技術(shù)文章》