2013-08-22 45 views
5

Tôi lấy một số JSON với góc như:Bạn có thể nén nội dung của yêu cầu nhận trong Angular không?

$http({ 
    url: 'https://www.somemachine.com/getdata', 
    method: "GET", 
    params: {} 
}).success(function(data, status, headers, config) { 
    console.log(data); 
} 

Các dữ liệu nó nhận là khá lớn, và tôi rất vui khi được gzip nguồn nhưng có một cách để gunzip nó khi phương pháp $http tôi fetches nó ?

Trả lời

5

Giả sử các nguồn đã được nén, chỉ cần đảm bảo header Accept-Encoding được thiết lập để gzip theo yêu cầu:

$http.get('https://www.somemachine.com/getdata', { headers: { 'Accept-Encoding': 'gzip' } } 
).success(function(data, status, headers, config) { 
    console.log(data); 
}); 

Trình duyệt sẽ tự động giải nén nó khi nó thấy Content-Encoding = tiêu đề gzip trên Phản hồi.

+0

Câu đầu tiên của bạn không có ý nghĩa. Tại sao khách hàng sẽ nói "Tôi muốn nó nén" khi máy chủ nén nó? – zeroflagL

+4

@zeroflagL Máy chủ chỉ nên nén mã này nếu ứng dụng khách nói "Tôi có thể chấp nhận dữ liệu gzipped" – richard