2017-02-18 15 views
1

ドメインAからドメインBのイメージにフェッチ要求を行っています。 ドメインB(Access-Control-Allow-Origin:*)に正しいヘッダーを設定しましたJavascript CORS fetch response.status = 0

は今、私はいつも私がクロムデバッガで確認した場合しかし、私はイメージがステータス200

で受信された見ることができる状態0 を取得し、応答ステータス(のResponse.Status)を検証します。

私の場合は、ステータスコードに基づいてリソースをキャッシュするかどうかを決定することです。ドメインBは静的リソースしか含んでおらず、キャッシュは永久的であると考えられていますので、ステータスコードが正しくない場合はキャッシュしない方が良いと思います。

誰もがこの現象をなぜ知っていますか?両方のドメインが、これは、コードスニペットはhttps

  • ある

    • 編集

      fetch(e.request).then(function(response){ 
      console.log(e.request.url+' - '+response.status); 
      } 
      
  • +0

    'もし私がクロムデバッガをチェックすると、画像がステータス200で受信されたのを見ることができます。 ' - あなたはCORSレスポンスヘッダも見ることができますか?ステータス0は通常CORSの問題を意味します –

    +0

    corsレスポンスヘッダーは本当に利用可能でした、ありがとう – jrnv

    答えて

    0

    さて、私は私が苦労してきた、その答えを自分自身を発見しましたこれはすでに数時間です。

    e.requestはservieworkerから発信されたもので、request-modeがデフォルトの「navigate」に設定されているようです。 CORS-コンテンツがCORSモードなしで許可されていることを私には奇妙に思えるが、ステータス - ん

    var request = new Request(e.request.url, { 
        method: e.request.method, 
        headers: e.request.headers, 
        mode: 'cors', 
        redirect: 'manual'}); 
    

    :これは私がこのような新しい要求を作成した「CORS」

    なければなりませんそれにもかかわらず、コードは変更される。

    誰かがこれの背後にある理由を知っていたら?

    関連する問題