issue/910: Fix CORS warning for localhost

See maplibre/maputnik#910

Don't show CORS warning for localhost
This commit is contained in:
John Bayly
2024-09-23 16:00:54 +01:00
parent 0f1000c5b0
commit aa6e05532e
+14 -7
View File
@@ -10,16 +10,22 @@ function validate(url: string, t: TFunction): JSX.Element | undefined {
}
let error;
const getProtocol = (url: string) => {
const getUrlParams = (url: string) => {
let protocol: string | undefined;
let isLocal = false;
try {
const urlObj = new URL(url);
return urlObj.protocol;
}
catch (err) {
return undefined;
protocol = urlObj.protocol;
// Basic check against localhost; 127.0.0.1/8 and IPv6 localhost [::1]
isLocal = /^(localhost|\[::1\]|127(.[0-9]{1,3}){3})/i.test(urlObj.hostname);
} catch (err) {
}
return { protocol, isLocal };
};
const protocol = getProtocol(url);
const {protocol, isLocal} = getUrlParams(url);
const isSsl = window.location.protocol === "https:";
if (!protocol) {
@@ -40,7 +46,8 @@ function validate(url: string, t: TFunction): JSX.Element | undefined {
else if (
protocol &&
protocol === "http:" &&
window.location.protocol === "https:"
window.location.protocol === "https:" &&
!isLocal
) {
error = (
<SmallError>