File tree Expand file tree Collapse file tree 3 files changed +46
-1
lines changed
Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Original file line number Diff line number Diff line change 11# node-XMLHttpRequest #
22
3+ this is a fork with support for disabling header checking.
4+
35node-XMLHttpRequest is a wrapper for the built-in http client to emulate the
46browser XMLHttpRequest object.
57
Original file line number Diff line number Diff line change @@ -30,6 +30,9 @@ exports.XMLHttpRequest = function() {
3030
3131 // Request settings
3232 var settings = { } ;
33+
34+ //headerscheck
35+ var disableHeaderChecking = false ;
3336
3437 // Set some default headers
3538 var defaultHeaders = {
@@ -117,7 +120,14 @@ exports.XMLHttpRequest = function() {
117120 * @return boolean False if not allowed, otherwise true
118121 */
119122 var isAllowedHttpHeader = function ( header ) {
120- return ( header && forbiddenRequestHeaders . indexOf ( header . toLowerCase ( ) ) === - 1 ) ;
123+ if ( disableHeaderChecking )
124+ {
125+ return true
126+ }
127+ else
128+ {
129+ return ( header && forbiddenRequestHeaders . indexOf ( header . toLowerCase ( ) ) === - 1 ) ;
130+ }
121131 } ;
122132
123133 /**
@@ -163,6 +173,19 @@ exports.XMLHttpRequest = function() {
163173
164174 setState ( this . OPENED ) ;
165175 } ;
176+
177+
178+ /**
179+ * Disables or enables isAllowedHttpHeader() check the request. Enabled by default.
180+ *
181+ * @param State true or false
182+ *
183+ * This is a more advance feature. This does not conform to the W3C spec
184+ *
185+ */
186+ this . disableHeaderCheck = function ( state ) {
187+ disableHeaderChecking = state ;
188+ }
166189
167190 /**
168191 * Sets a header for the request.
Original file line number Diff line number Diff line change 1+ var sys = require ( 'util' ) ;
2+ var XMLHttpRequest = require ( "./lib/xmlhttprequest" ) . XMLHttpRequest ;
3+
4+ var xhr = new XMLHttpRequest ( ) ;
5+
6+ xhr . onreadystatechange = function ( ) {
7+ sys . puts ( "State: " + this . readyState ) ;
8+
9+ if ( this . readyState == 4 ) {
10+ sys . puts ( "Complete.\nBody length: " + this . responseText . length ) ;
11+ sys . puts ( "Body:\n" + this . responseText ) ;
12+ }
13+ } ;
14+
15+ xhr . open ( "GET" , "http://localhost/ua_test.php" ) ;
16+
17+ xhr . disableHeaderCheck ( true ) //Disable check
18+
19+ xhr . setRequestHeader ( 'User-Agent' , 'Search bot' ) ; //set forbidden header
20+ xhr . send ( ) ;
You can’t perform that action at this time.
0 commit comments