2016-07-05 30 views
8

Tôi đang cố gắng để vô hiệu hóa bộ nhớ cache trong ứng dụng AngularJS của tôi, nhưng nó không phải đang làm việc với đoạn mã sau:

$http.get("myurl",{cache:false}) 

Khi tôi sử dụng "myurl&random="+Math.random(), bộ nhớ cache bị vô hiệu hóa; nhưng, tôi muốn một cách tiếp cận khác.

+0

Điều này đã được trả lời [ở đây] (http://stackoverflow.com/questions/16098430/angular-ie-caching-issue-for-http). – user6408463

+0

Bản sao có thể có của [Vấn đề về bộ đệm IE góc với $ http] (https://stackoverflow.com/questions/16098430/angular-ie-caching-issue-for-http) –

Trả lời

18

này đã được trả lời here.

Dán đoạn mã từ liên kết để bạn tham khảo.

myModule.config(['$httpProvider', function($httpProvider) { 
    //initialize get if not there 
    if (!$httpProvider.defaults.headers.get) { 
     $httpProvider.defaults.headers.get = {};  
    }  

    // Answer edited to include suggestions from comments 
    // because previous version of code introduced browser-related errors 

    //disable IE ajax request caching 
    $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT'; 
    // extra 
    $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache'; 
    $httpProvider.defaults.headers.get['Pragma'] = 'no-cache'; 
}]); 
+0

Coool! Giải quyết vấn đề của tôi .. Cảm ơn các bạn! – Saxophonist

+0

Tôi khuyên bạn không nên sử dụng Pragma một. nó không phải là một tiêu chuẩn (rõ ràng) và có thể gây ra vấn đề với các yêu cầu Cross Origin. Chỉ cần hoàn thành một phiên gỡ lỗi 2 giờ với bạn bè để hiểu đó là nguyên nhân của vấn đề. –

1

thử như thế này

$state(' 'app.name', { 
url: '/name', 
cache: false, 
controller:'MainCtrl', 
templateUrl:'templates/name.html' 
}) 
+0

không chắc chắn câu trả lời này áp dụng như thế nào. Câu hỏi là về http nhận được. không phải mẫu. – tatmanblue

0
myApp.config(function ($routeProvider) { 
     $routeProvider. 
      when('/', {controller: 'MyCtrl', templateUrl: '/eshop/myConfig'}) 
}) 

.controller('MyCtrl', function ($scope, $templateCache) { 
    $templateCache.remove('/eshop/myConfig'); 
    // or 
    $templateCache.removeAll(); 
}); 

tôi đã không kiểm tra nó.Tôi tìm thấy một cái gì đó trong url.Have này một cái nhìn lúc này Angularjs - how to clear $routeProvider's caches of templateUrl

1

Dưới đây là những gì tôi đã làm, chỉ cần thay đổi nó để

$http.get("myurl",{headers:{'Cache-Control': 'no-cache'}}) 
Các vấn đề liên quan