获取获取请求的浏览器Accept-Language标头值

时间:2019-09-29 21:22:28

标签: javascript localization http-accept-language

我刚刚意识到fetch在默认情况下不会发送Accept-Language头,因此我打算添加它。但是,我没有遇到任何方法来获取浏览器应生成的字符串。

例如,在我的浏览器中,所有普通请求都具有一个不错的Accept-Language值:

  

en-US,en; q = 0.9,ja; q = 0.8,vi; q = 0.7,la; q = 0.6

我的问题可以通过以下任一方法解决:

  • 是否存在一个声明,告诉浏览器包含接受语言 标头为fetch
  • 有没有一种方法来获取该字符串,而不是从中生成它 navigator.languages?目前,我正在使用这种方法,但是我做了 它自己,并且不确定是否过大/不好。我宁愿使用 尽可能采用内置方式。
var getAcceptLanguageValue = () => {
    // Assume there are less than 10 languages
    let q = 1;

    return navigator.languages
        .slice(0, 10)
        .map(l => `${l};q=0.${10-q++}`)
        .join(",");
};

我得到的结果显然并不相同:

  

en-US; q = 0.9,en; q = 0.8,ja; q = 0.7,vi; q = 0.6,la; q = 0.5

0 个答案:

没有答案