我刚刚意识到默认情况下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