我需要知道Accept-Language
请求标头值才能在页面上进行翻译。我试图创建像
$httpProvider.interceptors.push(requestInterceptor);
,但在方法中
request: function (config) {
我的拦截器的我没有看到Accept-Language
标题。我看到Accept,Cache-Control,If-Modified-Since,Pragma但在浏览器中我看到Accept-Language
。
答案 0 :(得分:2)
AngularJS请求拦截器的config参数中并非所有请求标头都可用。其他标题值是在构造请求时添加的浏览器设置。
你可以使用,但我不确定它能为你提供合适的语言。
var language = window.navigator.userLanguage或 window.navigator.language;
只有服务器才能看到Accept-Language
的值。所以我认为最好的方法是从服务器响应体中获取此值并将其记忆在您的cookie中(名称示例为AcceptLanguageCookie),之后您可以在拦截器中覆盖Accept-Language
。{/ p >
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");
}]);