5

ポイントは、ファイルをアップロードするための API エンドポイントであるサブドメインを持っていることです。しかし、jQuery を使用してこのサブドメイン (メインの www ドメインから) に何かをアップロードしようとすると、エラーが発生します

XMLHttpRequest はhttp://1.storage.site.net/uploadを読み込めません。Origin http://www.site.netは Access-Control-Allow-Origin で許可されていません。

私はすべてを試しました:nginxのヘッダー、ソースコードのヘッダー、ファイルをスタブファイルに送信しようとしました

<?php

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Content-type: application/json');
header('Access-Control-Allow-Headers: *');

echo json_encode(['lulz' => 123]);

一言で言えば、何も機能しません。

しかし。小さなファイル (~1MB) は正しくアップロードされ、少し大きいファイル (5MB など) は正しくアップロードされないことに気付きました (オリジンが許可されていません)。

それを解決する方法はありますか?

4

1 に答える 1

2

私の賭けは、5MBのファイルがApacheの設定(またはその名前が何であれ)には大きすぎるためmax_request_body、PHPスクリプトが実行されないため、これらのヘッダーを送信できず、誤解を招くクロスドメインエラーが生成されることです.

この仮定が正しければ、ブラウザの「ネット」タブに詳細が表示されるはずです。アップロード スクリプトは何らかのエラー状態を返しているはずです。

デバッグするには、通常のフォーム ベースのファイル アップロードを実行し、それをテストして、機能するまで調整します。

于 2013-03-15T13:18:18.820 に答える