欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
HTML5解決跨域問(wèn)題


 

由于瀏覽器的同源策略,網(wǎng)絡(luò )連接的跨域訪(fǎng)問(wèn)是不被允許的,XHR對象不能直接與非同源的網(wǎng)站處理數據交互。而同源指的是什么呢?同源的范疇包括:規則(協(xié)議),主機號(域名、ip等),端口號。

但是隨著(zhù)開(kāi)放,共享平臺的流行,跨域訪(fǎng)問(wèn)的需求愈加強烈。目前最常用的跨域方案是動(dòng)態(tài)加入script標簽,這多少有點(diǎn)hack的意味,跨域訪(fǎng)問(wèn)似乎一直沒(méi)有什么安全且光明正大的辦法。

 

終于,HTML5提供的XMLHttpRequest Level2實(shí)現了跨域訪(fǎng)問(wèn)以及其他的一些新功能。下面我們會(huì )詳細討論一下:

 

XMLHttpRequest  Level2

XHR2是HTML5新特性中的一個(gè)(事實(shí)上沒(méi)有什么XHR1,XHR2這樣的概念,XHR2只是HTML5提供的一套新的規范),在原有XHR對象上新增了一些功能:跨域訪(fǎng)問(wèn),全新的事件,還有請求進(jìn)度以及響應進(jìn)度。

目前瀏覽器對于XHR2的兼容列表:

  • u Chrome              2.0以上
  • u Firefox              3.5以上
  • u Internet Explorer      不支持
  • u Opera               不支持
  • u Safari               4.0以上

 

原理:

正常情況下,我們書(shū)寫(xiě)一個(gè)XHR示例:

var xhr = new XMLHttpRequest();xhr.open('GET', 'http://baidu.com', true); //訪(fǎng)問(wèn)baidu.comxhr.send(null);

 

 

我們本地使用Chrome運行這段代碼,打開(kāi)控制臺查看錯誤信息:

 

圖1

 

在這里可以看到,本次請求已經(jīng)被Kill掉。這是因為,我們的頁(yè)面在本地,域是http://127.0.0.1,與請求的http://baidu.com非同源。

那么本次請求是何時(shí)被Kill的呢,是在發(fā)出前被瀏覽器確認為跨域請求而被立即終止了嗎?事實(shí)上,瀏覽器不僅發(fā)出了請求,還接收到了響應。然后根據響應頭的規則來(lái)確定這個(gè)域是否同源可以接收,如果不可以,瀏覽器就會(huì )報錯,接收到的數據也不會(huì )提供給腳本。

 

我們回到XHR2,上面提到,XHR對象新增了一些功能,這里就包括跨域訪(fǎng)問(wèn)。實(shí)現如下:

//在服務(wù)器端返回內容的頁(yè)面,設置Header Access-Control-Allow-Origin如下

Response.AddHeader("Access-Control-Allow-Origin","*") ;

 

 

這里,我們先不討論設置的含義,先讓代碼跑起來(lái),查看結果如何。

頁(yè)面http://inno.hotpotpro.com/FirePot/meetingdate?date=20120723已經(jīng)完成如上配置,修改JS代碼如下:

 

var xhr = new XMLHttpRequest();xhr.open('GET', 'http://inno.hotpotpro.com/FirePot/meetingdate?date=20120723', true); //訪(fǎng)問(wèn)baidu.comxhr.send();

 

 

刷新頁(yè)面,查看控制臺,沒(méi)有報錯。打開(kāi)控制臺的“Network”選型卡:

 

圖2

 

可以看到紅線(xiàn)標識的部分:Access-Control-Allow-Origin:*,即為我們在服務(wù)器端所做的設置。切換到“Response”選項卡:

 

圖3

 

可以看到服務(wù)器返回的內容,如此,我們完成了跨域訪(fǎng)問(wèn)。

 

這是怎么做到的呢?

瀏覽器在接收到服務(wù)器返回信息時(shí),會(huì )檢查響應頭的Access-Control-Allow-Origin,它的值標識請求內容所允許的域。

我們之前要求服務(wù)器設置Access-Control-Allow-Origin為*,表明該返回信息允許所有源訪(fǎng)問(wèn)。如果設置為具體的域,如http://niweisuo.com,就表明除了同源外,只允許域來(lái)自niweisuo.com的訪(fǎng)問(wèn)。

 

注:

在使用AJAX類(lèi)庫時(shí),可能經(jīng)過(guò)如上的設置,依然無(wú)法通過(guò)瀏覽器的安全限制。那么,可以檢查一下AJAX類(lèi)庫的代碼,看是否存在影響跨域設置的代碼:

 

圖4

 

如上是tangram-ajax-1.5.2.js中,影響跨域的代碼,注釋調即可,其他類(lèi)庫請自調。

 

 

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ajax學(xué)習筆記
詳解HTML5中的Communication API基本使用方法
和chatgpt學(xué)習javascript,第一天,學(xué)習背景知識
利用CORS實(shí)現跨域請求 | NewHTML
逐漸深入地理解Ajax
Browser Security
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久