8

クロス ドメイン アップロード プロジェクトで FineUploader 3.7 を使用しています。簡単な認証を持つクライアントの DEV サーバーにコードを移動するまで、すべて問題ありません。プリフライト リクエストがサーバーに送信されるときにフォームに認証情報を埋め込む方法はありますか?

基本認証をヘッダーに埋め込もうとしましたが、機能しません。以下のコードを参照してください。

$.ajaxSetup({
    headers: {
        'Authorization': "Basic YZVjaGFmbWluOkNieWxjBTY3"
    },
    beforeSend: function (jqXHR, settings) {
        jqXHR.setRequestHeader('Authorization', 'Basic YZVjaGFmbWluOkNieWxjBTY3');
    }
});

さらに、カスタムヘッダーを設定しようとしましたが、うまくいきませんでした:

var manualuploader = new qq.FineUploader({
  customHeaders: {
    'Authorization': 'Basic YXVjaGFkbWluOkNieWxjZTY3'
  },....
4

1 に答える 1

13

customHeadersオプションが正しく定義されていません 。オプションのドキュメントで詳しく説明されているようにcustomHeaders、オプションのプロパティです。requestrequest

Fine Uploader 統合コードは、代わりに次のようになります。

var manualuploader = new qq.FineUploader({
    request: {
        endpoint: "path/to/your/server",
        customHeaders: {
            "Authorization": "Basic YXVjaGFkbWluOkNieWxjZTY3"
        }
    }
});

また、jQueryajaxSetupは Fine Uploader の ajax/xhr 呼び出しには影響しないことに注意してください。Fine Uploader は内部的に jQuery を一切使用していません。Fine Uploader が提供するオプションの jQuery プラグインは、ネイティブの JavaScript ライブラリをラップするだけで、jQuery および jQuery プラグインに関連する共通の構文をサポートすることにより、jQuery プラグインとして簡単に使用できるようになります。

また、IE9 以前では ajax/xhr 経由のアップロードがサポートされていないため、これらのヘッダーは IE9 以前ではアップロード リクエストとともに渡されないことに注意してください。これらのブラウザーでは、iframe をターゲットとするフォームが送信されます。フォーム送信の場合、カスタム ヘッダーをリクエストに関連付ける方法はありません。

于 2013-08-27T04:28:00.983 に答える