@@ -63,25 +63,34 @@ function calculatePrimeNumbers() {
6363
6464/** A function which handles requests and send response. */
6565function handleRequest ( request , response ) {
66- const span = tracer . startChildSpan ( { name : 'octutorials .handleRequest' } ) ;
66+ const span = tracer . startChildSpan ( { name : 'ocweb .handleRequest' } ) ;
6767
6868 try {
6969 let body = [ ] ;
7070 request . on ( 'error' , err => console . log ( err ) ) ;
7171 request . on ( 'data' , chunk => body . push ( chunk ) ) ;
7272
73- // Necessary headers because the Node.js and React dev servers run in different ports.
74- response . setHeader ( 'Access-Control-Allow-Origin' , '*' ) ;
75- response . setHeader ( 'Access-Control-Allow-Methods' , 'GET, POST, OPTIONS, PUT, PATCH, DELETE' ) ;
76- response . setHeader ( 'Access-Control-Allow-Headers' , 'X-Requested-With,content-type' ) ;
77- response . setHeader ( 'Access-Control-Allow-Credentials' , true ) ;
78-
73+ // Necessary header because the Node.js and React dev servers run in different ports.
74+ response . setHeader ( 'Access-Control-Allow-Origin' , '*' ) ;
75+
7976 let result = '' ;
8077 let code = 200 ;
78+ // Accept all CORS pre-flight requests
79+ if ( request . method === 'OPTIONS' ) {
80+ // Set headers to allow traceparent and subsequent get request.
81+ response . setHeader ( 'Access-Control-Allow-Headers' , 'traceparent' ) ;
82+ response . setHeader ( 'Access-Control-Allow-Methods' , 'GET' ) ;
83+ request . on ( 'end' , ( ) => {
84+ span . end ( ) ;
85+ response . statusCode = code ;
86+ response . end ( ) ;
87+ } ) ;
88+ return ;
89+ }
8190 if ( url . parse ( request . url ) . pathname === '/sleep' ) {
8291 console . log ( "Sleeping..." )
8392 const time = Date . now ( ) ;
84- sleep . sleep ( 5 ) ;
93+ sleep . sleep ( 2 ) ;
8594 result = { time : Date . now ( ) - time , value : "" } ;
8695 console . log ( "Finished." )
8796 } else if ( url . parse ( request . url ) . pathname === '/prime_numbers' ) {
@@ -109,7 +118,7 @@ function handleRequest(request, response) {
109118function setupTracerAndExporters ( ) {
110119 const zipkinOptions = {
111120 url : 'http://localhost:9411/api/v2/spans' ,
112- serviceName : 'opencensus_tutorial '
121+ serviceName : 'opencensus_web_server '
113122 } ;
114123
115124 // Creates Zipkin exporter
0 commit comments