blueimp jqueryファイルのアップロードとhttphandler:ファイルがなく、常に「オプション」httpmethod

StackOverflow https://stackoverflow.com/questions/9352154

質問

Windows Server 2008 R2でIIS 7.5を使用して、MVC 3で動作するBlueimp JQuery File-Uploaderを取得するのに苦労しています。私はhttphandlerを使用してアップロードを処理します。しかし、httphandlerは、ファイルやhttpmethod "post"または "put"、常に「オプション」を受け取ることはありません。誰かがここで何が間違っているのかを考えていますか?

アップローダーからフェールコールバックで得られる唯一のメッセージは「エラー」です。

ここに私のJS:

$('#fileupload').fileupload(
{
    acceptFileTypes: /(\.|\/)(pdf)$/i,
    fail: function (e, data) {
        alert("Error: " + data.errorThrown + " Text-Status: " + data.textStatus);
        // data.jqXHR;
    },
    maxNumberOfFiles: 1
    /*add: function (e, data) {
        data.formData = [{ name: "name1", value: "1" }, { name: "name2", value: "2"}];

        data.submit();
    },
    submit: function (e, data) {
        //data.formData = [{ name: "name1", value: "1" }, { name: "name2", value: "2"}];
    }*/
}
);

助けてくれてありがとう!

役に立ちましたか?

解決

コードを追加すると、トリックが行われました。

サーバ側:

        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://example.net");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials", "true");

クライアント側:

$('#fileupload').fileupload(
{
    xhrFields: {
        withCredentials: true
    }
}

他のヒント

ページがdomain1.comから提供され、domain2.comにアップロードしようとしている場合。 HTTP POSTリクエストは予定されています。

domain2.comは、実際にdomain1.comがファイルをアップロードできるようにする必要があります。異なるサーバーには、それを行うためのさまざまなメカニズムがあります。

この場合、IISであるサーバーに「アクセスコントロールアロウオリジン」を設定する方法について読んでください。

Amazon S3の場合、非常に簡単なポリシーXMLがあり、これを更新する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top