Use fetch() instead of iframe to make remote control requests

This commit is contained in:
Anton Khorev 2022-10-20 15:29:57 +03:00
parent 572d1adaae
commit 821ebdd57b
2 changed files with 5 additions and 17 deletions

View file

@ -255,20 +255,10 @@ $(document).ready(function () {
}); });
function sendRemoteEditCommand(url, callback) { function sendRemoteEditCommand(url, callback) {
var iframe = $("<iframe>"); fetch(url, { mode: "no-cors", signal: AbortSignal.timeout(5000) })
var timeoutId = setTimeout(function () { .then(callback)
alert(I18n.t("site.index.remote_failed")); .catch(function () {
iframe.remove(); alert(I18n.t("site.index.remote_failed"));
}, 5000);
iframe
.hide()
.appendTo("body")
.attr("src", url)
.on("load", function () {
clearTimeout(timeoutId);
iframe.remove();
if (callback) callback();
}); });
} }

View file

@ -253,9 +253,7 @@ class ApplicationController < ActionController::Base
def map_layout def map_layout
policy = request.content_security_policy.clone policy = request.content_security_policy.clone
policy.child_src(*policy.child_src, "http://127.0.0.1:8111", "https://127.0.0.1:8112") policy.connect_src(*policy.connect_src, "http://127.0.0.1:8111", Settings.nominatim_url, Settings.overpass_url, Settings.fossgis_osrm_url, Settings.graphhopper_url, Settings.fossgis_valhalla_url)
policy.frame_src(*policy.frame_src, "http://127.0.0.1:8111", "https://127.0.0.1:8112")
policy.connect_src(*policy.connect_src, Settings.nominatim_url, Settings.overpass_url, Settings.fossgis_osrm_url, Settings.graphhopper_url, Settings.fossgis_valhalla_url)
policy.form_action(*policy.form_action, "render.openstreetmap.org") policy.form_action(*policy.form_action, "render.openstreetmap.org")
policy.style_src(*policy.style_src, :unsafe_inline) policy.style_src(*policy.style_src, :unsafe_inline)