scansion/serve.lua

changeset 158
f09fe6c16e10
parent 157
b35dc87ebff0
child 159
0aa4f7bda3f8
equal deleted inserted replaced
157:b35dc87ebff0 158:f09fe6c16e10
6 local json = require "util.json"; 6 local json = require "util.json";
7 local time = require "socket".gettime; 7 local time = require "socket".gettime;
8 8
9 function handle_request() 9 function handle_request()
10 return "Hello world"; 10 return "Hello world";
11 end
12
13 local function set_cross_domain_headers(response, origin)
14 local headers = response.headers;
15 headers.access_control_allow_methods = "GET, POST, OPTIONS";
16 headers.access_control_allow_headers = "Content-Type";
17 headers.access_control_max_age = "7200";
18 headers.access_control_allow_origin = origin;
19 return response;
11 end 20 end
12 21
13 local function run(config, run_script) 22 local function run(config, run_script)
14 function handle_run_request(event) 23 function handle_run_request(event)
15 local request, response = event.request, event.response; 24 local request, response = event.request, event.response;
31 end 40 end
32 41
33 response.status_code = 201; 42 response.status_code = 201;
34 response.headers.connection = "close"; 43 response.headers.connection = "close";
35 response.headers.transfer_encoding = "chunked"; 44 response.headers.transfer_encoding = "chunked";
45 set_cross_domain_headers(response, config.origin); -- Let browser JS see the response
36 response.conn:send(table.concat(http_server.prepare_header(response))); 46 response.conn:send(table.concat(http_server.prepare_header(response)));
37 47
38 local ok, ret = pcall(run_script, "web", event.request.body, log); 48 local ok, ret = pcall(run_script, "web", event.request.body, log);
39 49
40 if not ok then 50 if not ok then

mercurial