別の IIS サーバーにファイルをアップロードする必要がある Java Web アプリがあります。サーバーとアプリケーションの両方を完全に管理できます。
blueimp からのファイルのアップロードに jQuery プラグインを使用しています ( http://blueimp.github.io/jQuery-File-Upload/ )
元々、クロスドメインだったのでブラウザーのセキュリティの問題があったため、IIS サーバーを変更してオリジンを許可し、以前は失敗していたサーバーからの最初の OPTIONS 要求が成功するようになりました。
次に、サーバー側で成功し、応答をストリーミングしているファイルデータを含む POST が来ますが、クライアントはそれを詰まらせ続けます。
Google Chrome を使用して [ネットワーク] タブを確認すると、"(キャンセル済み) というステータスが表示されます。リクエストをクリックして [プレビュー/レスポンス] タブを見ると、それらは空です。そのため、ヘルプはありません。
次に、fileupload 呼び出しに jQuery 失敗ハンドラー関数を追加し、ブレークポイントを配置して xhr オブジェクトをチェックしました。役に立たない、status 0、readyState 0、responseText は空の文字列、statusText は単なる「エラー」です。偉大な。
何が問題なのかを示す兆候がないこの問題をどのようにデバッグすればよいでしょうか?
標準の HTML フォームを使用して同じリソースへのアップロードを実行する別のテスト ページを試したところ、問題なく動作しました。返信は問題なく受信できました。それで、それはCORSと関係があると思いますか?しかし、何がわからない... OPTIONS リクエストが通過した場合、問題はないはずです。
ファイルアップロード呼び出しを設定するための私のコードは次のとおりです。
input.fileupload({
dataType: 'text',
maxFileSize : 100000000,
done: function (e, response) {
debugger;
},
fail: function (a, b) {
debugger;
}
});
常に失敗状態になり、これらのパラメーターを掘り下げることで、XHR オブジェクトを見つけることができ、エラーの原因に関する有用な詳細を見つけることができません。
Chrome と Firefox の両方を試しましたが、どちらも機能しません
また、最初に dataType 'json' を試してみましたが、役に立ちませんでした (サーバーからの応答を JSON 形式で書きましたが、おそらく解析の問題であると考えたため、両側で dataType テキストに切り替えましたが、まだ進行していません)。
助けてください!