前提
ASP.NET(WebForm) でプリフライトリクエストを成功させるにはどうすれば良いでしょうか?
SPAでファイルアップロードをする機能を作りました。
ファイルのアップロードは出来たのですが、進捗をクライアントサイドで取得しようとすると
エラーになります。
【通信ライブラリ】
axios
【サーバーサイド】
ASP.NET(VB) ・・・MVCでもWebAPIでもありません。WebFormのソースにファイル保存処理後にJSONを返すように記述しています。
【備考】
クライアントとサーバーは別オリジンにあります。
CORS対策としてIISのWeb.configに以下のように追記しました。
<customHeaders> <add name="Access-Control-Allow-Origin" value="*"/> <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS"/> </customHeaders>
発生している問題
アップロードの進捗状態をブラウザ側で取得したいため、axios.postメソッドにおいて
onUploadProgressオプションを指定しています。
これを指定するとプリフライトリクエストでOPTIONSが発生し、その結果がエラーとなってしまいます。
(指定しなかった場合、正常にファイルがアップロードされます)
js
1 uploadFile(endpoint,file){ 2 const data = new FormData() 3 data.append("filedata",file) 4 const callbackOption = { 5 onUploadProgress:function(progress){ 6 console.log(progress+"%完了") 7 } 8 } 9 axios.post(endpoint,data,callbackOption) 10 }
試したこと
サーバーサイドにASP.NET MVCとPHP+Apacheで試したところ、エラーになりませんでした。
ともにファイルデータを保存したあと適当なJSONで返すものです。
Web.config,httpd.confにおいてCORS対策も同様に行いました。
ASP.NET WebForm に対して何か固有の対処が必要なのか?と思い投稿しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/23 06:09
退会済みユーザー
2020/12/23 06:14
退会済みユーザー
2020/12/23 23:55 編集
退会済みユーザー
2020/12/23 23:45
2020/12/24 05:34
退会済みユーザー
2020/12/24 06:28 編集
2020/12/24 07:47
退会済みユーザー
2020/12/24 08:00