Angularjs 如何在客户端上获取Accept Language请求标头值
我需要知道Angularjs 如何在客户端上获取Accept Language请求标头值,angularjs,Angularjs,我需要知道接受语言请求标题值,以便在页面上进行翻译。我试图创建一个拦截器,比如 $httpProvider.interceptors.push(requestInterceptor); ,但在方法上 request: function (config) { 对于我的拦截器,我没有看到Accept Language标题。我看到Accept,Cache Control,如果修改自,则为Pragma,但在浏览器中我确实看到Accept LanguageAngularJS请求拦截器的配置参数中并非所
接受语言
请求标题值,以便在页面上进行翻译。我试图创建一个拦截器,比如
$httpProvider.interceptors.push(requestInterceptor);
,但在方法上
request: function (config) {
对于我的拦截器,我没有看到
Accept Language
标题。我看到Accept,Cache Control,如果修改自,则为Pragma,但在浏览器中我确实看到Accept Language
AngularJS请求拦截器的配置参数中并非所有请求头都可用。其他标头值是在构造请求时添加的浏览器设置
你可以用,但我不确定它给了你正确的语言
var language=window.navigator.userLanguage或
window.navigator.language
只有服务器才能看到Accept Language
的值。因此,我认为最好的方法是从服务器响应体中获取该值,并将其存储在cookie(名称示例AcceptLanguageCookie)中,然后在拦截器中以类似的方式覆盖接受语言
var app = angular.module("app", []);
app.config(["$httpProvider", function($httpProvider) {
// set Accept-Language header on all requests
$httpProvider.defaults.headers.common["Accept-Language"] = $cookies.get("AcceptLanguageCookie");
}]);
您应该有一个headers对象或数组,可以在其中添加标题信息。在Angular2/4上,您有如下内容:var headers=newheaders();headers.append('Accept-Language','xyz);这个.http.post(url,data,{headers:headers})@moohkooh当我执行请求时,浏览器将语言代码设置为头,我需要读取它。我不需要设置它,我需要知道浏览器设置的值。