Tôi có một API Web viết bằng ASP.NET mà tôi đang tiêu thụ thông qua AngularJS $http
.
tôi đã kích hoạt bộ nhớ đệm trong nhà máy AngularJS của tôi như sau nhưng mọi yêu cầu vẫn trả về một phản ứng của 200
, không bao giờ 200 (from cache)
hoặc 304
(và bởi mọi yêu cầu tôi có nghĩa là làm cho cùng một yêu cầu api web nhiều lần trên cùng một trang, xem xét lại một trang Tôi đã truy cập có chứa một yêu cầu API Web, làm mới trang đã nói, v.v.).
angular.module('mapModule')
.factory('GoogleMapService', ['$http', function ($http) {
var googleMapService = {
getTags: function() {
// $http returns a promise, which has a 'then' function, which also returns a promise
return $http({ cache: true, dataType: 'json', url: '/api/map/GetTags', method: 'GET', data: '' })
.then(function (response) {
return response.data;
});
};
return googleMapService;
}]);
Tôi có thiếu thứ gì đó từ phía AngularJS không? Hay đây là một vấn đề về Web API. Hoặc cả hai?
Các tiêu đề không có bộ nhớ cache mặc định là ASP.NET hoặc IIS vì Web API tự lưu trữ không làm điều đó. –
Xin lỗi @DarrelMiller không quá chắc chắn ý bạn là gì. Bạn đang nhắc đến loại API Web nào? – GFoley83
Web API là một khung công tác nằm trên một số máy chủ: Hoặc là IIS/ASP.NET host, WCF Self-Host hoặc một số máy chủ lưu trữ dựa trên Owin. Các tiêu đề bộ nhớ đệm bạn đang thấy được chèn theo mặc định đang được đặt ở đó bởi máy chủ bạn đang sử dụng, không phải là bản thân trang web. Không phải là nó thay đổi bất cứ điều gì cho bạn, chỉ là một FYI. –