HTTP标头"接受语言"在各种浏览器中表现不同

时间:2017-08-08 08:51:23

标签: javascript server

我已经在网页的javascript部分编写了以下代码

function LanguageClicked(language_clicked){
    var request = new XMLHttpRequest();
    request.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        //do something 
    }
  };

request.open("GET", "", true /* async */);
request.setRequestHeader("Accept-Language", language_clicked);
request.setRequestHeader("X-Lang-Change", true);
request.send();
}

在html代码中,我将此功能转移到用户选择的语言。

当我使用window.alert打印language_clicked值时,我得到正确的值,即en-US或fr。

直到这里一切都很好,我的问题是在移动Android原生浏览器 - 三星s7,用户代理:

    Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-A320FL Build/MMB29K)
    AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/5.4
    Chrome/51.0.2704.106 Mobile Safari/537.36

当标题到达服务器时,它始终是浏览器的默认语言,即:en-US。只需从不同的浏览器即可从同一手机进入同一页面" chrome"标头按预期到达服务器。

是否有任何关于哪些浏览器可以更改默认http标头字段以及哪些不是?或者如果有人以前遇到过它?我能做些什么来解决它?

0 个答案:

没有答案