2017-11-23 1 views
0

私はフロントエンドをIE 11で実行しようとしていますが、この問題はChromeのIEのcuzでのみ発生するようです。とにかく毎回私はDBから読み返すために私のブラウザキャッシュをクリアしたくありません。私は通訳を追加しようとしました:角4 IEのキャッシュから読み取る

myModule.config(['$httpProvider', function($httpProvider) { 
if (!$httpProvider.defaults.headers.common) { 
    $httpProvider.defaults.headers.common = {}; 
} 
$httpProvider.defaults.headers.common["Cache-Control"] = "no-cache"; 
$httpProvider.defaults.headers.common.Pragma = "no-cache"; 
$httpProvider.defaults.headers.common["If-Modified-Since"] = "0"; 
}]); 

それは動作しませんでした。その横に私はそれを追加する方法がわからないか、それは有用ではないかもしれないというようにです注射に従うことを

@Injectable() 
export class NoCacheHttp extends Http { 
constructor(backend: XHRBackend, options: RequestOptions) { 
    super(backend, options); 
} 

get(url: string, options?: RequestOptionsArgs): Observable<Response> { 
    //make options object if none. 
    if (!options) { 
     options = { params: new URLSearchParams() }; 
    } 
    //for each possible params type, append a random number to query to 
force no browser caching. 
    //if string 
    if (typeof options.params === 'string') { 
     let params = new URLSearchParams(options.params); 
     params.set("k", new Date().getTime().toString()); 
     options.params = params; 

    //if URLSearchParams 
    } else if (options.params instanceof URLSearchParams) { 
     let params = <URLSearchParams>options.params; 
     params.set("k", new Date().getTime().toString()); 

    //if plain object. 
    } else { 
     let params = options.params; 
     params["k"] = new Date().getTime().toString(); 
    } 
    return super.get(url, options); 
} 
} 

を試してみました。!!! Prevent IE11 caching GET call in Angular 2 しかし、私はあなたがヘッダを設定することにより、手動でキャッシュを無効にする必要が

+0

オムが、しかし、私はangularjs(バージョン1.x)のような最初のコードを免除見えることに気づいたが、2番目は明らかに角度2+です。そんなことがあるものか? –

答えて

0

を「私は昨日の角度について知っていた」クラスを登録したり、それを使用する方法がわかりません。私はIE上でsdamerの問題を抱えていた、このコードはそれを解決した。次のヘッダーを設定バックエンドに各HTTP要求の前に:

const headers = new Headers(); 
headers.append('Cache-Control', 'no-cache'); 
headers.append('Pragma', 'no-cache'); 
this.http.get('my url', {headers: headers}); // make the call 
+0

私は 'これを試しました.get(this.getDropdownURL()、{ヘッダー:ヘッダー})' '{角度/共通/ http 'からインポート{HttpClient、HttpHeaders};' 'インポート{ヘッダー} from '@ angular/http'; ' このエラーは常に発生します プロパティ'ヘッダー 'の種類は互換性がありません。 タイプ 'ヘッダー'はタイプ 'ヘッダー'に割り当てられません。 – NFAL

+0

'Network'タブでヘッダが正しく設定されているかどうかチェックしましたか? –

+0

私は昨日どのような 'network' LOLをAngular – NFAL

関連する問題