mirror of
https://github.com/liriliri/eruda.git
synced 2026-05-20 08:47:20 +08:00
feat(network): fetch request headers
This commit is contained in:
@@ -7,7 +7,8 @@ import {
|
||||
getFileName,
|
||||
now,
|
||||
toNum,
|
||||
fileSize
|
||||
fileSize,
|
||||
isEmpty
|
||||
} from '../lib/util'
|
||||
|
||||
export default class FetchRequest extends Emitter {
|
||||
@@ -19,6 +20,7 @@ export default class FetchRequest extends Emitter {
|
||||
this._url = fullUrl(url)
|
||||
this._id = uniqId('request')
|
||||
this._options = options
|
||||
this._reqHeaders = options.headers || {}
|
||||
this._method = options.method || 'GET'
|
||||
}
|
||||
send(fetchResult) {
|
||||
@@ -38,9 +40,8 @@ export default class FetchRequest extends Emitter {
|
||||
res = res.clone()
|
||||
|
||||
const type = getType(res.headers.get('Content-Type'))
|
||||
|
||||
res.text().then(resTxt => {
|
||||
this.emit('update', this._id, {
|
||||
const data = {
|
||||
type: type.type,
|
||||
subType: type.subType,
|
||||
time: now(),
|
||||
@@ -49,7 +50,11 @@ export default class FetchRequest extends Emitter {
|
||||
resHeaders: getHeaders(res),
|
||||
status: res.status,
|
||||
done: true
|
||||
})
|
||||
}
|
||||
if (!isEmpty(this._reqHeaders)) {
|
||||
data.reqHeaders = this._reqHeaders
|
||||
}
|
||||
this.emit('update', this._id, data)
|
||||
})
|
||||
|
||||
return res
|
||||
|
||||
@@ -79,16 +79,9 @@ export default class Network extends Tool {
|
||||
origSend.apply(this, arguments)
|
||||
}
|
||||
|
||||
winXhrProto.setRequestHeader = function() {
|
||||
winXhrProto.setRequestHeader = function(key, val) {
|
||||
const req = this.erudaRequest
|
||||
if (!req._headers) {
|
||||
req._headers = {}
|
||||
}
|
||||
const key = arguments[0]
|
||||
const val = arguments[1]
|
||||
if (key && val) {
|
||||
req._headers[key] = val
|
||||
}
|
||||
if (req) req.handleReqHeadersSet(key, val)
|
||||
|
||||
origSetRequestHeader.apply(this, arguments)
|
||||
}
|
||||
@@ -137,8 +130,6 @@ export default class Network extends Tool {
|
||||
method: 'GET',
|
||||
startTime: now(),
|
||||
time: 0,
|
||||
resHeaders: {},
|
||||
reqHeaders: {},
|
||||
resTxt: '',
|
||||
done: false
|
||||
})
|
||||
@@ -175,15 +166,7 @@ export default class Network extends Tool {
|
||||
|
||||
if (!data.done) return
|
||||
|
||||
showSources('http', {
|
||||
url: data.url,
|
||||
data: data.data,
|
||||
resTxt: data.resTxt,
|
||||
type: data.type,
|
||||
subType: data.subType,
|
||||
resHeaders: data.resHeaders,
|
||||
reqHeaders: data.reqHeaders
|
||||
})
|
||||
showSources('http', data)
|
||||
})
|
||||
.on('click', '.eruda-clear-request', () => this.clear())
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@ import {
|
||||
trim,
|
||||
isCrossOrig,
|
||||
toNum,
|
||||
fileSize
|
||||
fileSize,
|
||||
isEmpty
|
||||
} from '../lib/util'
|
||||
|
||||
export default class XhrRequest extends Emitter {
|
||||
@@ -18,6 +19,7 @@ export default class XhrRequest extends Emitter {
|
||||
super()
|
||||
|
||||
this._xhr = xhr
|
||||
this._reqHeaders = {}
|
||||
this._method = method
|
||||
this._url = fullUrl(url)
|
||||
this._id = uniqId('request')
|
||||
@@ -25,25 +27,32 @@ export default class XhrRequest extends Emitter {
|
||||
handleSend(data) {
|
||||
if (!isStr(data)) data = ''
|
||||
|
||||
this.emit('send', this._id, {
|
||||
data = {
|
||||
name: getFileName(this._url),
|
||||
url: this._url,
|
||||
data,
|
||||
method: this._method
|
||||
})
|
||||
}
|
||||
if (!isEmpty(this._reqHeaders)) {
|
||||
data.reqHeaders = this._reqHeaders
|
||||
}
|
||||
this.emit('send', this._id, data)
|
||||
}
|
||||
handleReqHeadersSet(key, val) {
|
||||
if (key && val) {
|
||||
this._reqHeaders[key] = val
|
||||
}
|
||||
}
|
||||
handleHeadersReceived() {
|
||||
const xhr = this._xhr
|
||||
|
||||
const type = getType(xhr.getResponseHeader('Content-Type'))
|
||||
|
||||
this.emit('update', this._id, {
|
||||
type: type.type,
|
||||
subType: type.subType,
|
||||
size: getSize(xhr, true, this._url),
|
||||
time: now(),
|
||||
resHeaders: getHeaders(xhr),
|
||||
reqHeaders: (xhr.erudaRequest && xhr.erudaRequest._headers) || null
|
||||
resHeaders: getHeaders(xhr)
|
||||
})
|
||||
}
|
||||
handleDone() {
|
||||
|
||||
Reference in New Issue
Block a user