5

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

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

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

我的问题可以通过以下任一选项解决:

  • 是否有声明告诉浏览器包含 Accept-Language 标头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

4

0 回答 0