Skip to content

Instantly share code, notes, and snippets.

@SE7ENSKY
Created April 17, 2013 17:54
Show Gist options
  • Save SE7ENSKY/5406355 to your computer and use it in GitHub Desktop.
Save SE7ENSKY/5406355 to your computer and use it in GitHub Desktop.
Cross-Site Proxy draft
http = require "http"
proxyToHost = 'www.sandbox.prostoprint.com'
server = http.createServer (request, response) ->
delete request.headers.host
delete request.headers.hostname
proxiedRequest = http.request
hostname: proxyToHost
host: proxyToHost
port: 80
path: request.url
method: request.method
headers: request.headers
, (proxiedResponse) ->
proxiedResponse.on "data", (chunk) ->
response.write chunk, "binary"
proxiedResponse.on "end", ->
response.end()
proxiedResponse.headers['Access-Control-Allow-Origin'] = '*'
response.writeHead proxiedResponse.statusCode, proxiedResponse.headers
request.on "data", (chunk) ->
proxiedRequest.write chunk, "binary"
request.addListener "end", ->
proxiedRequest.end()
server.listen process.env.PORT or 8080
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment