diff --git a/lib/app.js b/lib/app.js index 8685cc2..d55399d 100644 --- a/lib/app.js +++ b/lib/app.js @@ -46,8 +46,9 @@ app.get('/', function(req, res) { // do proxy // copy headers from the external request, but remove those that node should generate - var externalReqHeaders = u.omit(req.headers, 'accept-encoding', 'connection', 'cookie', 'host', 'user-agent'); - externalReqHeaders.accept = 'application/json'; + var externalReqHeaders = u.omit(req.headers, 'accept-encoding', 'connection', 'cookie', 'host', 'user-agent'), + raw = params.raw; // undocumented, for now + externalReqHeaders.accept = raw ? '*/*' : 'application/json'; request({ uri: apiUrl, @@ -56,7 +57,6 @@ app.get('/', function(req, res) { encoding: 'utf8' }, function(error, response, body){ var callbackName = params.callback || params.jsonp, - raw = params.raw, // undocumented, for now status; if (error){ diff --git a/test/server_test.js b/test/server_test.js index a2a6dd3..20ae28a 100644 --- a/test/server_test.js +++ b/test/server_test.js @@ -145,4 +145,20 @@ describe('app', function(){ }); }); + + it('should set the Accept header to "*/*" for "raw" requests', function(done){ + var destApp = express(); + destApp.get('/', function(req, res){ + expect(req.headers.accept).to.eql('*/*'); + res.send(''); + }); + var server = http.createServer(destApp); + server.listen(8001, function(){ + + supertest(app) + .get('/') + .query({url: 'http://localhost:8001', raw: true}) + .expect(200, done); + }); + }); });