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