2013-03-20 35 views
7

Bazı özel isteklerden ($httpProvider düzeyinde değil) bazı $http istek başlık alanlarını silmek istiyorum. Bu alanlar:Angular.js başlıklarından silme

  • Cache-Control
  • If-Modified-Since
  • Referer
  • -ile X Talep

nasıl tek bir istekle bunu yapmak? transformRequest parametresini kullanmayı denedim, ancak çalışmasını sağlamak için yeterli bilgi bulamadı. Böyle bir [CoffeeScript] kod:

$scope.logout = -> 
    $http({ 
    method: 'GET' 
    url: '/api/logout' 
    headers: { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' } 
    transformRequest: (data, headersGetter) -> 
     console.log data 
     console.log headersGetter 
     data 
    }).success -> 
    $location.path('editor') 

headersGetter (kesinlikle hiçbir şey bana diyor ki) function (c){a||(a=Nb(b));return c?a[y(c)]||null:a} ve ben transformRequest işlevinden dönmek için anlayamadım, dataundefined olduğunu göstermektedir.

cevap

7
  1. Eğer Açısal ait unminified sürümünü kullanıyorsanız, bir istisna meydana geldiğinde güzel geriye dönük izleme alırsınız ve daha kolay bir zaman açısal kod introspecting gerekecek. Gelişirken kişisel olarak tavsiye ederim. Bazı veriler göndermekten sürece

    function (name) { 
        if (!headersObj) headersObj = parseHeaders(headers); 
    
        if (name) { 
         return headersObj[lowercase(name)] || null; 
        } 
    
        return headersObj; 
        } 
    

    sizin trafoya data argüman tanımsız olacaktır: Burada headersGetter gerçek görüntüsü bu.

  2. tek başlık almak istiyorsanız headersGetter işlevi, isteğe bağlı bir argüman name alır, ancak bir başlık ayarlamak için bağımsız değişkeni ihmal:

    headersGetter()['Cache-Control'] = 'no-cache'; 
    headersGetter()['X-Requested-With'] = ''; 
    

    sizin trafodan dönüş değeri değeri olmalıdır Kullanmak istediğiniz data.

  3. XHR'den can’t change the Referer header siz.