@@ -51,6 +51,36 @@ function getStatus()
51
51
return retVal ;
52
52
}
53
53
54
+ function parseParams ( query )
55
+ {
56
+ var params = { } ;
57
+ if ( query != null && query . length > 0 )
58
+ {
59
+ var pairs = query . split ( "&" ) ;
60
+ for ( var loop = 0 ; loop < pairs . length ; loop ++ )
61
+ {
62
+ var kv = pairs [ loop ] . split ( '=' ) ;
63
+ if ( kv && kv . length == 2 )
64
+ {
65
+ if ( kv [ 0 ] in params )
66
+ {
67
+ params [ kv [ 0 ] ] . push ( querystring . unescape ( kv [ 1 ] . replace ( / \+ / g, " " ) ) ) ;
68
+ }
69
+ else
70
+ {
71
+ params [ kv [ 0 ] ] = [ querystring . unescape ( kv [ 1 ] . replace ( / \+ / g, " " ) ) ] ;
72
+ }
73
+ }
74
+ else
75
+ {
76
+ //LATER: do something?
77
+ }
78
+ }
79
+ }
80
+
81
+ return params ;
82
+ }
83
+
54
84
function redirect ( response , location )
55
85
{
56
86
response . writeHead ( 302 , { "Content-Type" : "text/plain" , "Location" : location } ) ;
@@ -78,10 +108,28 @@ function serveFile(response, contentType, fileName)
78
108
} ) ;
79
109
}
80
110
81
- function serveStatus ( response )
111
+ function serveStatus ( query , response )
82
112
{
83
- response . writeHead ( 200 , { "Content-Type" : "text/plain" } ) ;
84
- response . write ( JSON . stringify ( getStatus ( ) ) ) ;
113
+ response . writeHead ( 200 , {
114
+ "Content-Type" : "text/plain" ,
115
+ 'Access-Control-Allow-Origin' : '*' ,
116
+ 'Access-Control-Allow-Methods' : 'POST, GET' ,
117
+ 'Access-Control-Max-Age' : '604800' ,
118
+ } ) ;
119
+
120
+ var params = parseParams ( query ) ;
121
+
122
+ if ( 'callback' in params )
123
+ {
124
+ response . write ( params [ 'callback' ] [ 0 ] ) ;
125
+ response . write ( "(" ) ;
126
+ response . write ( JSON . stringify ( getStatus ( ) ) ) ;
127
+ response . write ( ")" ) ;
128
+ }
129
+ else
130
+ {
131
+ response . write ( JSON . stringify ( getStatus ( ) ) ) ;
132
+ }
85
133
response . end ( ) ;
86
134
}
87
135
@@ -124,27 +172,7 @@ function serveTest(query, response)
124
172
125
173
try
126
174
{
127
- var params = { } ;
128
- var pairs = query . split ( "&" ) ;
129
- for ( var loop = 0 ; loop < pairs . length ; loop ++ )
130
- {
131
- var kv = pairs [ loop ] . split ( '=' ) ;
132
- if ( kv && kv . length == 2 )
133
- {
134
- if ( kv [ 0 ] in params )
135
- {
136
- params [ kv [ 0 ] ] . push ( querystring . unescape ( kv [ 1 ] . replace ( / \+ / g, " " ) ) ) ;
137
- }
138
- else
139
- {
140
- params [ kv [ 0 ] ] = [ querystring . unescape ( kv [ 1 ] . replace ( / \+ / g, " " ) ) ] ;
141
- }
142
- }
143
- else
144
- {
145
- //LATER: do something?
146
- }
147
- }
175
+ var params = parseParams ( query ) ;
148
176
149
177
retVal [ "params" ] = JSON . stringify ( params ) ;
150
178
@@ -232,8 +260,8 @@ function serveTest(query, response)
232
260
html . push ( "\t\t<tr>\n" ) ;
233
261
html . push ( "\t\t\t<th style=\"text-align:center;\">Test</th>\n" ) ;
234
262
html . push ( "\t\t\t<th>Input</th>" ) ;
235
- html . push ( "\t\t\t<th>input.replace</th>" ) ;
236
- html . push ( "\t\t\t<th>input.split</th>" ) ;
263
+ html . push ( "\t\t\t<th>input.replace() </th>" ) ;
264
+ html . push ( "\t\t\t<th>input.split()[] </th>" ) ;
237
265
html . push ( "\t\t\t<th>regex.test()</th>" ) ;
238
266
html . push ( "\t\t\t<th>regex.exec().index</th>" ) ;
239
267
html . push ( "\t\t\t<th>regex.exec()[]</th>" ) ;
@@ -381,7 +409,7 @@ http.createServer(function (request, response)
381
409
}
382
410
else if ( parsedUrl . pathname == '/status.json' )
383
411
{
384
- serveStatus ( response ) ;
412
+ serveStatus ( parsedUrl . query , response ) ;
385
413
}
386
414
else if ( parsedUrl . pathname == '/robots.txt' )
387
415
{
0 commit comments