Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Transform empty responses into empty Blobs
Summary: In `XMLHttpRequest`, if the responseType is `Blob`, but the response is an empty string, we return `null` from `XMLHttpRequest.prototype.response()`. Instead, we should return an empty Blob. This is the behaviour on the web. To demonstrate, run the following HTTP server with Node: ## server.js ``` const http = require('http'); const server = http.createServer(); server.on('request', (request, response) => { if (request.url.includes('img.png')) { console.log('sending image'); response.end(''); return; } response.end('Hello World!'); }); server.listen('9000'); ``` Then, open up a web browser to `http://localhost:9000`, and type the following in the console: ``` var oReq = new XMLHttpRequest(); oReq.open('GET', 'http://localhost:9000/img.png', true); oReq.responseType = 'blob'; oReq.onload = function(oEvent) { var blob = oReq.response; console.warn(blob); }; oReq.onerror = function(error) { console.warn('Error!'); }; oReq.send(); ``` This warns: ``` Blob {size: 0, type: "text/xml"} ``` Changelog: [Both][Fixed] - [RN][XMLHttpRequest] Transform empty responses into empty Blobs Reviewed By: sahrens Differential Revision: D19500607 fbshipit-source-id: ec35e534b32a507c8a94a29e955b7bc4c62902a0
- Loading branch information