Skip to content

Commit 2c895b2

Browse files
authored
Merge pull request #564 from Instabug/Fix/network-logger-crash
[INSD-5139] Fix handling a network request body that is not a string
2 parents 682e9c8 + 8d11577 commit 2c895b2

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

__tests__/xhrNetworkInterceptor.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('Network Interceptor', () => {
6363
const requestBody = { data: [{ item: 'first' }, { item: 'second' }] };
6464
Interceptor.enableInterception();
6565
Interceptor.setOnDoneCallback((network) => {
66-
expect(network.requestBody).toEqual(requestBody);
66+
expect(network.requestBody).toEqual(JSON.stringify(requestBody));
6767
done();
6868
})
6969
FakeRequest.open(method, url);
@@ -170,4 +170,4 @@ describe('Network Interceptor', () => {
170170
});
171171

172172

173-
});
173+
});

utils/XhrNetworkInterceptor.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,18 @@ const XHRInterceptor = {
4848
if (network.requestHeaders === '') {
4949
network.requestHeaders = {};
5050
}
51-
network.requestHeaders[header] = value;
51+
network.requestHeaders[header] = typeof value === 'string' ? value : JSON.stringify(value);
5252
originalXHRSetRequestHeader.apply(this, arguments);
5353
};
5454

5555
XMLHttpRequest.prototype.send = function(data) {
5656
var cloneNetwork = JSON.parse(JSON.stringify(network));
5757
cloneNetwork.requestBody = data ? data : '';
5858

59+
if (typeof cloneNetwork.requestBody !== "string") {
60+
cloneNetwork.requestBody = JSON.stringify(cloneNetwork.requestBody);
61+
}
62+
5963
if (this.addEventListener) {
6064
this.addEventListener(
6165
'readystatechange',

0 commit comments

Comments
 (0)