有没有办法更改或编辑我发送给我的API的接受语言标题?在Javascript Jquery或Angular中有没有办法?我不想发送默认的,但我的Cookie有!
答案 0 :(得分:3)
在AngularJS中,您可以使用$httpProvider设置公共标题,并且可以使用$cookies服务获取Cookie。
例如:
var app = angular.module("app", []);
app.config(["$httpProvider", "$cookies", function($httpProvider, $cookies) {
// set Accept-Language header on all requests to
// value of AcceptLanguageCookie cookie
$httpProvider.defaults.headers.common["Accept-Language"] = $cookies.get("AcceptLanguageCookie");
// or set headers on GET requests only
if (!($httpProvider.defaults.headers).get) {
($httpProvider.defaults.headers).get = {};
}
$httpProvider.defaults.headers.get["Test-Header"] = "value";
}]);
答案 1 :(得分:1)
要引用包含特定“Accept-Language”值的cookie,您需要在运行时执行此操作。原因是app config仅接受Providers,不建议引用Services。
要在运行时执行此操作,您需要使用$http和$cookies服务
以下是一个例子:
var app = angular.module("app", []);
app.run(["$http", "$cookies", function($http, $cookies){
// set Accept-Language header on all requests
$http.defaults.headers.common["Accept-Language"] = $cookies.get("LocaleCookie");
}]);
要在没有Cookie的情况下静态设置“Accept-Language”,您可以使用.config()
var app = angular.module("app", []);
app.config(["$httpProvider", function($httpProvider) {
// set Accept-Language header on all requests
$httpProvider.defaults.headers.common["Accept-Language"] = "fr";
}]);