Restangular无法设置默认标头

时间:2016-07-15 06:23:07

标签: angularjs json content-type restangular request-headers

我正在尝试通过Restangular发送帖子请求。我想在内容中传递json,所以我在帖子请求中添加了默认标题但仍然给出了415不支持的媒体类型。当我在浏览器中检查请求标题时,它仍显示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请求的标题中设置内容类型?

我还尝试全局设置此标题

  .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但没有运气。有人可以帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我最终创建了一个拦截器,并使用该内容类型设置每个请求,并在我的配置中添加以下语句。

$httpProvider.interceptors.push('interceptor');