Fix HEAD request failing with `Invalid response for blob` (#19567)

Summary:
Fixes #18223

This is a fairly simple solution to what seems to be a recurring issue where certain requests that result in an empty body where JSON is expected throw an error rather than being handled gracefully. Client side error handling is not being hit as this is being thrown at a lower level.
Make a http request that results in an empty blob: ""

[INTERNAL] [BUGFIX] [XMLHttpRequest.js] - Line 262
Pull Request resolved: https://github.com/facebook/react-native/pull/19567

Differential Revision: D8314416

Pulled By: hramos

fbshipit-source-id: a17c49f3620f0abbb936f3a1c2b01aa1b64820fd
This commit is contained in:
anthony 2018-09-26 13:42:50 -07:00 committed by Facebook Github Bot
parent d517214dd4
commit 7e9c3f77cc
1 changed files with 3 additions and 1 deletions

View File

@ -246,6 +246,8 @@ class XMLHttpRequest extends EventTarget(...XHR_EVENTS) {
case 'blob': case 'blob':
if (typeof this._response === 'object' && this._response) { if (typeof this._response === 'object' && this._response) {
this._cachedResponse = BlobManager.createFromOptions(this._response); this._cachedResponse = BlobManager.createFromOptions(this._response);
} else if (this._response === '') {
this._cachedResponse = null;
} else { } else {
throw new Error(`Invalid response for blob: ${this._response}`); throw new Error(`Invalid response for blob: ${this._response}`);
} }