Open recursify opened 8 years ago
+1
I experienced the same problem. I think that http-browserify sets the protocol to window.location.protocol
in any case. I tried to call a request to my API, eg. http://<hostname>/api
, so I specified the HTTP protocol and http-browserify still tries to send the request to file://<hostname>/api
. The reason is that in the lib/request.js
file URI
is composed from scratch. Take a look:
self.uri = (params.protocol || 'http:') + '//'
+ params.host
+ (params.port ? ':' + params.port : '')
+ (params.path || '/')
;
In my case, it does not work. I need the same URI that I put to a request method. I fixed it by adding a below line after code that I've posted above:
if (params.href !== 'undefined' && params.protocol === 'file:') self.uri = params.href;
It resolved a few problems in my project but I am not sure is this change will not cause breaking a code in another scenario.
If not specified, http-browserify sets the protocol to
window.location.protocol
. This differs from the behavior of Node (see https://nodejs.org/api/http.html#http_http_request_options_callback ). I assume the reasoning was to make https requests if the current location is also https (but I could be wrong here).Does it make sense to mimic Node's behavior exactly, and just default to http: ?
The issue I'm running into is when running a script locally in the browser, so the protocol is "file:". http-browserify then tries to make file:// requests, which obviously fail.