2016-12-08 15 views
0

私はそれを調べましたが、構文は正しいようですが、何がうまくいかないのか分かりません。オプションのparamsを含めなかった場合、CORSがオンの場合を除いてすべて正常に動作しますが、これは私が望まないものです。js fetchを使用してCORSを無効にする

要求モードとオプションを追加した後、私は今、すべての要求されたイメージで、このエラーを取得しています:

画像クロッパー-modal.js:73 GETデータ:ネット:: ERR_INVALID_URL

はすでにここに探して試してみました:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch と、ここ:ここhttps://jakearchibald.com/2015/thats-so-fetch/

は私のコードです:

オプションを使用
const options = { 
     method: 'GET', 
     mode: 'no-cors' 
    }; 

    fetch(url, options).then(response => response.blob()) 
    .then(blob => { 
     let reader = new FileReader(); 
     reader.onload =() => { 
     const type = blob.type; 
     const [image, dataUrl] = [new Image(), reader.result]; 
     image.src = dataUrl; 
     const [width, height] = [image.width, image.height]; 
     const {minWidth, minHeight} = props.opt; 
     const isWithinBounds = (width >= minWidth) && (height >= minHeight); 
     callback({ 
      dataUrl, 
      height, 
      minHeight, 
      minWidth, 
      width 
     }); 
     } 
     reader.readAsDataURL(blob) 
    }); 
+0

サーバー側にアクセスできますか? devモードでは、CORSを避ける​​ためにこれを使用します。 response.header( "Access-Control-Allow-Origin"、 "*"); response.header( "アクセス制御の許可ヘッダー"、 "発信元、X-Requested-With、Content-Type、Accept"); –

+0

FYI - あなたの2番目のリンクで、no-corsについて述べている**もちろん、レスポンス**の内容を読むことができないので、コードがレスポンスを読むことができないことがかなりわかります(corsヘッダ存在している、私は信じている) –

答えて

2

ないはあなたに読める応答が得られます:

no-corsからHEADGETまたはPOST以外のものであることから方法を防ぎます。いずれかのServiceWorkersがこれらの要求を傍受した場合、これら以外のヘッダーは追加または上書きできません。 さらに、JavaScriptは結果のレスポンスのプロパティにアクセスできません。これにより、ServiceWorkersがWebのセマンティクスに影響を与えないようにし、ドメイン間でデータが漏洩することによるセキュリティとプライバシーの問題を防止します。言い換えればsource、強調鉱山)

あなたがJavaScriptからの要求を作りたい場合、あなたはCORSを有効にする必要があります。サーバー上でCORSサポートを設定できない場合は、サーバーを介して要求をプロキシする方法は、自分のサーバーを使用して、またはサードパーティ製のサーバーを使用して、 crossorigin.meまたはcors-anywhereなどのパーティサービス、または他の同様のサービスのいずれか)。

no-corsオプションは、レスポンスを読み取ることができなくてもCORS以外の要求を行う場合があるため、利用可能です。たとえば、service workersは、このオプションを使用して、ブラウザによって行われたリクエスト(例えば、JavaScriptコードだけでなく<img>タグやHTMLページなど)を傍受(リダイレクトやキャッシュ、読み取りや変更はできません)することができます。

+0

これのまわりに方法はありますか? – Anchalee

+0

@Anchaleeプロキシのユーザーに関係しないものではありません。しかし、私は私の答えでいくつかの公開CORS代理人にリンクしています。 – Frxstrem

関連する問題