有什麼辦法從xhr對象中提取請求url? 我可以通過頻道屬性看到螢火蟲的網址,但你不能使用javascript查詢這個。從xhr對象獲取請求url
回答
我希望我能正確理解你的問題。
使用自己的對象包裝XHR對象應該相當簡單,以實現這種功能。
下面是一個過於簡化的例子:
// Assumption: GetXHR() returns a new XHR object, cross browser.
function HTTPGet(url, onStartCb, onCompleteCb)
{
var xhr = GetXHR();
// Construct your own xhr object that contains the url and the xhr object itself.
var myXhr = { xhr: xhr, url: url };
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
onCompleteCb(myXhr);
}
};
xhr.open("GET", url);
onStartCb(myXhr);
xhr.send(null);
}
我還沒有廣泛測試此,但它應該工作,並與一些修改(錯誤處理,傳遞的參數等),你應該能夠把這個例子變成一個功能完整的解決方案
是的,這是最好的方法,但是我希望快速獲勝而沒有需要重構我目前正在使用的所有js。歡迎回復 – redsquare 2009-06-01 13:04:36
據https://developer.mozilla.org/en/XmlHttpRequest,你確實可以得到channel
如果您擁有更高權限;然而,channel
是非標準的(可能無法在其他瀏覽器中運行),並且實際上http://www.w3.org/TR/XMLHttpRequest/的W3C規範沒有提及channel
,也沒有提供任何其他「提取請求URL」的方式。因此,我懷疑在瀏覽器中沒有合理的方法。
獲取這些信息對擴展來說不是問題(因爲它具有特權訪問),但是就我所知在正常的xmlhttprequest用法中是不可用的 – 2009-05-28 15:16:41
如果您使用的是jQuery,那麼您可以使用AJAX請求中的「beforeSend」函數來修改jqXHR對象。即,
$.ajax({
...
url: "http://some/url",
beforeSend: function(jqxhr, settings) { jqxhr.requestURL = "http://some/url"; },
...
});
傳遞到各種回調的jqXHR對象隨後將有一個變量,jqXHR.requestURL
,您可以訪問。
具有以下劈沒有包裝要求:
var xhrProto = XMLHttpRequest.prototype,
origOpen = xhrProto.open;
xhrProto.open = function (method, url) {
this._url = url;
return origOpen.apply(this, arguments);
};
用法:
var r = new XMLHttpRequest();
r.open('GET', '...', true);
alert(r._url); // opens an alert dialog with '...'
- 1. 從XHR獲取請求頭
- 2. XHR在onreadystatechange中獲取請求URL
- 3. 從XHR請求獲取BLOB數據
- 4. Angular 2從http獲取請求的對象獲取請求
- 5. 取消XHR請求
- 6. API從URL獲取請求
- 7. 獲取從URL請求
- 8. 從ajax請求獲取javascript對象
- 9. 從HTTP請求中獲取JSON對象
- 10. 從HttpSessionEvent獲取請求對象
- 11. 重定向後從XHR對象獲取最終url
- 12. HttpServletRequest無法獲取xhr請求參數
- 13. chrome.webRequest.onBeforeRequest捕獲AngularJS XHR請求
- 14. 從Scrapy中的請求對象獲取HTTP請求消息
- 15. Django:獲取無需訪問請求對象的絕對URL
- 16. 如何從xhr請求
- 17. 從XHR請求獲得OAuth2令牌請求
- 18. 獲取XMLHttpRequest請求的絕對URL?
- 19. 如何從express對象中獲取請求對象?
- 20. XHR請求undefined
- 21. php從url獲取對象
- 22. 從XHR獲取方法和URL
- 23. PHP刪除從URL獲取請求
- 24. 從請求url獲取IP地址
- 25. 從請求獲取url變量
- 26. 從POST請求獲取遠程URL
- 27. 如何獲取請求URL?
- 28. 在不使用請求對象的情況下獲取URL
- 29. CoreData - 獲取請求與relatioship對象
- 30. 使用AJAX GET請求獲取對象
這是一個Firefox擴展或網頁上的腳本?如果它在頁面上,爲什麼你還沒有這個信息? – 2009-05-28 14:53:42
我有多個請求各種數據的間隔,我有一些常見的ajaxStart&ajaxComplete事件來處理一般事件(顯示/隱藏進度指示器)我只需要訪問ajaxComplete事件中的邊緣案例的URL。 – redsquare 2009-05-28 15:36:59