javascriptでhttpヘッダーを取得する方法はたくさんありますが、何らかの理由でHTTP_CF_IPCOUNTRYヘッダーが表示されません。CloudflareのHTTP_CF_IPCOUNTRYヘッダをjavascriptで取得しますか?
私がPHP echo $_SERVER["HTTP_CF_IPCOUNTRY"];
でしようとすると、それは動作するので、CFは正常に動作しています。
このヘッダーをjavascriptで取得することはできますか?
javascriptでhttpヘッダーを取得する方法はたくさんありますが、何らかの理由でHTTP_CF_IPCOUNTRYヘッダーが表示されません。CloudflareのHTTP_CF_IPCOUNTRYヘッダをjavascriptで取得しますか?
私がPHP echo $_SERVER["HTTP_CF_IPCOUNTRY"];
でしようとすると、それは動作するので、CFは正常に動作しています。
このヘッダーをjavascriptで取得することはできますか?
あなたがクライアント側JavaScriptについて話しているとすれば、いいえ、それはできません。
を見つけ
JavaScriptを使用するには、サーバー側のコードで読み取ってからブラウザに返信する必要があります。
@ Quentinの答えは正しかったし、サーバーヘッダにアクセスしようとしているjavascriptクライアントにも当てはまります。
しかし、この質問はCloudlfareに固有であり、2文字の国のISOをHTTP_CF_IPCOUNTRYヘッダーで通常取得することに特有なので、質問に最も適した回避策があると思います。
以下...コードの私はCloudFlareの後ろに座って、Appエンバー私のフロントエンドに使用抜粋...とワニスであるとの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');
パフォーマンスは本当に素晴らしいです、ドン」他のAPIや関数を呼び出す前であっても、この関数を呼び出すことを心配しないでください。クラウドフレアのキャッシュから静的リソースを取得するよりも早く、あるいは時には迅速であることがわかっています。あなたはこれを確認するためにPingdomでプロファイルを実行することができます。
クライアントまたはサーバー側(ノード)というjavascriptは何を意味していますか? – hindmost
クライアント側js。 –