2011-08-28 67 views
1

我希望能夠在使用javascript之前重新加載當前加載的資源,但是要自定義一些頭變量。javascript:如何獲取當前資源的XMLHttpRequest表示

需要該方法/應在2真實情況下使用:

  1. 作爲一種方式,以處理經由真實HTTP-登錄登錄,這意味着附帶的認證數據重新加載資源
  2. 要獲得同一資源的不同媒體類型表示,這意味着在重新發送請求之前修改接受標頭。

由於我需要不改變任何其他頭字段,因爲瀏覽器本身會發送它,所以我不能簡單地使用document.URL值構造我自己的XMLHttpRequest。相反,我需要獲取請求的XMLHttpRequest表示,瀏覽器爲當前資源發送。

有沒有辦法在JS中實現這一點?最好使用沒有任何jQuery魔術的純JS。

+0

這個問題很混亂。什麼是「XMLHttpRequest表示」? 「真正的HTTP登錄」是什麼意思?你想在這裏抓401嗎?我不知道從哪裏開始。 –

+0

當前資源的XMLHttpRequest表示是http請求,瀏覽器確實已發送到服務器,以加載當前加載的主資源(由瀏覽器的url字段中的url確定的主資源),以XMLHttpRequest目的。 –

回答

1

如果它是通過GET加載的,則可以創建一個XMLHttpRequest並使用document.location.href作爲URL。

瀏覽器將指定通常的cookie標題,所以您的請求標題應該基本相同,除非GET以非idempotent方式更改cookie。

如果當前資源通過POST加載,那麼您運氣不好。當前資源的POST正文不適用於JavaScript,因此除非您需要其他方式來獲取它或從頁面內容推斷它。

+0

我想,如果你有最簡單的GET請求,那可能就夠了。但是如果我這樣做了,我確實很依賴瀏覽器的足夠友好,像以前一樣包含所有的元數據。能夠簡單地'調用'瀏覽器之前使用的請求對象並重用它將是一個更加優雅的解決方案。 –

相關問題