在編寫Ajax通用錯誤處理程序時,經常需要記錄發生錯誤的XMLHttpRequest的請求URL。但查詢文檔,並未找到從XMLHttpRequest中獲取請求URL的方法。
在javascript - Get request url from xhr object - Stack Overflow中提供了一種可能的實現方式:為瀏覽器原生的XMLHttpRequest包上一層。實現代碼如下:
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 '...'
