diff --git a/lib/plugins/server/session.js b/lib/plugins/server/session.js index fa8aedf5..a6636d22 100644 --- a/lib/plugins/server/session.js +++ b/lib/plugins/server/session.js @@ -120,9 +120,12 @@ var LowLevelPingLoop = {}; throw("Error: the connexion with the server seems to be lost. Please reload"); } + // Domain used for AJAX request + var domain_url = ""; + function internal_ajax(settings){ if(linked_with_server){ - settings.url = internal_url + settings.url; + settings.url = domain_url + internal_url + settings.url; if(to_register.length != 0){ var body = settings.data; if (typeof body == 'undefined') body=""; @@ -564,6 +567,10 @@ var LowLevelPingLoop = {}; } } + LowLevelSession.set_domain_url = function(d) { + domain_url = d; + } + LowLevelSession.llmake = function(st, unserialize, fun_session, ctx, dfun, more, concurrent) { the_ping_loop(); @@ -747,6 +754,14 @@ function set_uu(x0, x1) { return js_void; } +/** + * @register {string -> void} + */ +function set_domain_url(d) { + LowLevelSession.set_domain_url(d); + return js_void; +} + /** * @register {'st, \ (opa[option('ctx)], RPC.Json.private.native, \ diff --git a/lib/stdlib/core/rpc/core/session.opa b/lib/stdlib/core/rpc/core/session.opa index afc78d53..8e42465f 100644 --- a/lib/stdlib/core/rpc/core/session.opa +++ b/lib/stdlib/core/rpc/core/session.opa @@ -184,6 +184,11 @@ type make_at_response = option(RPC.Json.json) Session = {{ + /** + * Explicitely set the domain's URL used by AJAX request, no domain by default + */ + @client set_domain_url = %%Session.set_domain_url%% + /** * {2 Creating sessions} */