@ La risposta di Quentin è corretta e vale per qualsiasi client javascript che tenta di accedere alle intestazioni del server.
Tuttavia, poiché questa domanda è specifica per Cloudlfare e specifica per ottenere normalmente l'ISO del paese di 2 lettere nell'intestazione HTTP_CF_IPCOUNTRY, credo di avere un work-around che si adatta meglio alla domanda posta.
Qui di seguito un estratto di codice che uso sul mio frontend Ember App, seduto dietro Cloudflare ... e vernici ... e fastboot ...
function parseTrace(url){
let trace = [];
$.ajax(url,
{
success: function(response){
let lines = response.split('\n');
let keyValue;
lines.forEach(function(line){
keyValue = line.split('=');
trace[keyValue[0]] = decodeURIComponent(keyValue[1] || '');
if(keyValue[0] === 'loc' && trace['loc'] !== 'XX'){
alert(trace['loc']);
}
if(keyValue[0] === 'ip'){
alert(trace['ip']);
}
});
return trace;
},
error: function(){
return trace;
}
}
);
};
let cfTrace = parseTrace('/cdn-cgi/trace');
La performance è davvero davvero grande, don' t aver paura di chiamare questa funzione anche prima di chiamare altre API o funzioni. Ho trovato che sia veloce o talvolta anche più veloce del recupero di risorse statiche dalla cache di Cloudflare. Puoi eseguire un profilo su Pingdom per confermarlo.
fonte
2017-01-18 03:23:08
Quale javascript intendi: client o lato server (nodo)? – hindmost
Lato client js. –