blueimp jqueryファイルのアップロードとhttphandler:ファイルがなく、常に「オプション」httpmethod
-
27-10-2019 - |
質問
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があり、これを更新する必要があります。
所属していません StackOverflow