Restangular 无法设置默认 headers
Restangular not able set default headers
我正在尝试通过 Restangular 发送 post 请求。我想在内容中传递 json,所以我在 post 请求中添加了默认的 headers,但它仍然给出了 415 Unsupported media Type。当我在浏览器中检查请求 headers 时,它仍然显示 text/plain。
这是我的功能
this.create = function(data) {
var deferred = $q.defer();
var User = Restangular.all('user');
User.post(data, {}, {'Content-Type': 'application/json'})
.then(function(data) {
$timeout(function() {
deferred.resolve(data);
});
}, function(error) {
deferred.reject(error);
});
return deferred.promise;
}
GET 请求按预期工作。但是我无法在 POST 请求的 header 中设置内容类型?
我也尝试过全局设置这个header
.config(function($httpProvider, ServiceSettings, RestangularProvider) {
console.log("urlddd " + ServiceSettings.apiUrl);
RestangularProvider.setBaseUrl(ServiceSettings.apiUrl + '/api/');
RestangularProvider.setRestangularFields({
etag: 'Etag'
});
RestangularProvider.setDefaultHeaders({
'Content-Type': 'application/json'
});
$httpProvider.interceptors.push('authInterceptor');
});
但这也行得通。我也试过 this 但没有成功。有人可以帮忙吗?
谢谢
我最终创建了一个拦截器并使用该内容类型设置每个请求,并在我的配置中添加了以下语句。
$httpProvider.interceptors.push('interceptor');
我正在尝试通过 Restangular 发送 post 请求。我想在内容中传递 json,所以我在 post 请求中添加了默认的 headers,但它仍然给出了 415 Unsupported media Type。当我在浏览器中检查请求 headers 时,它仍然显示 text/plain。 这是我的功能
this.create = function(data) {
var deferred = $q.defer();
var User = Restangular.all('user');
User.post(data, {}, {'Content-Type': 'application/json'})
.then(function(data) {
$timeout(function() {
deferred.resolve(data);
});
}, function(error) {
deferred.reject(error);
});
return deferred.promise;
}
GET 请求按预期工作。但是我无法在 POST 请求的 header 中设置内容类型?
我也尝试过全局设置这个header
.config(function($httpProvider, ServiceSettings, RestangularProvider) {
console.log("urlddd " + ServiceSettings.apiUrl);
RestangularProvider.setBaseUrl(ServiceSettings.apiUrl + '/api/');
RestangularProvider.setRestangularFields({
etag: 'Etag'
});
RestangularProvider.setDefaultHeaders({
'Content-Type': 'application/json'
});
$httpProvider.interceptors.push('authInterceptor');
});
但这也行得通。我也试过 this 但没有成功。有人可以帮忙吗?
谢谢
我最终创建了一个拦截器并使用该内容类型设置每个请求,并在我的配置中添加了以下语句。
$httpProvider.interceptors.push('interceptor');