WebGLアプリケーションでのCORS制限を回避しようとしています。URLを解決して画像を返すWebサービスがあります。このWebサービスはCORSに対応していないため、返された画像をテクスチャとして使用できません。
私は次のことを計画していました:
- 画像リクエストを処理するPHPスクリプトを作成する
- 画像リクエストは、URLパラメータとしてクエリ文字列を介して送信されます
PHPスクリプトは次のようになります。
- クエリ文字列URLを使用してWebサービスを呼び出します
- 画像応答を取得します(Webサービスはcontent-type:image応答を返します)
- CORSヘッダー(Add Access-Control-Allow-Origin)を応答に追加します
- ブラウザに応答を送信します
CURL、HTTPResponse、plain var_dumpなどのさまざまな手法を使用してこれを実装しようとしましたが、それぞれのある時点でスタックしました。
だから私は2つの質問があります:
- アプローチは十分ですか?
- アプローチを検討することで十分です。
私はCURLで最も進歩しました。次のコマンドで画像ヘッダーとデータを取得できます。
$ch = curl_init();
$url = $_GET["url"];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:image/jpeg'));
//Execute request
$response = curl_exec($ch);
//get the default response headers
$headers = curl_getinfo($ch);
//close connection
curl_close($ch);
ただし、これは実際には変更されません。応答のcontent-typeをimage/jpegに設定します。ヘッダーと応答をcontent-typetext/ htmlの新しい応答にダンプし、ヘッダーと画像のBLOBデータをブラウザーに表示します。
必要な形式で応答を送信するにはどうすればよいですか?