接着昨晚的寫。。。

上回說到我們可以通過重寫請求頭的技術,來繞過瀏覽器的限制,今晚來看令一個在請求頭中設置的頭信息—–內容緩存

Cache-Control

一些瀏覽器會緩存通過Ajax請求所獲得的內容,在瀏覽器回話期間不會再次的請求它。我們可以通過設置禁止緩存的頭信息可以達到,當請求的內容發生了改變的時候,就會在下一次請求文檔時體現出來

需要做的就是在open方法和send方法之間加一句

httpRequest.setRequestHeader(‘Cache-Control’,’no-cache’)

讀取響應的頭

我們可以通過
1 httpRequest.getResponseHeader(裏面寫某個響應頭)

2 httpRequets.getAllResponseHeaders()

兩個方法來獲取服務器響應某個ajax時發送回來的http頭。

需要注意的是,響應頭是服務器在響應請求是首先會寫的信息,所以我們可以在readyState == 2 的時候就可以用着兩個方法來讀取響應頭了,而不需要等到4的時候。

跨源請求

默認情況下瀏覽器限制腳步只能在他們所屬的文檔的來源內生成ajax請求,HTML5中的跨源資源共享規範提供了一種合法的方式來生成跨源的請求。

方法其實並沒有什麼黑科技的成分,就是在服務器端設置一個白名單而已,以此聲明哪個源可以有特殊的權限來對我進行請求。
在服務端

var origin = req.headers[‘origin’];
if(origin.indexOf(‘xiaoyu’)>-1){
res.setHeader(“Access-Control-Allow-Origin”,origin);

不難懂吧,就是把你要將特殊權限分配給誰的那個域給寫進白名單而已,這樣擁有特殊權限的源就可以對你發送跨域請求了。

abort()

另一個出現在level2中的方法是abort方法,他是一個可以允許你中途終止請求的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章