• 締切済み

ashxに送信したデータが受信時に違う値になる

とあるZipファイルのデータをashxに送信し、 ashxで受信したデータをファイルに出力する処理を実現したいのですが、 出力されたファイルを解凍しようとしても破損しており、解凍できませんでした。 原因を調べてみたところ、ajaxでashxに送信する時点では元のZipファイルと同じBinaryデータなのですが、ashxで受信したリクエストのボディ部が送信したデータと一致していませんでした。 (ashxで受信したTotalBytesの値が送信データよりも多くなってしまっていました。) ajaxで送信する際の指定に問題があるのでしょうか? 原因分かる方おりましたら、ご教授ください。 -----------------以下データを送信するaspxファイルのJS------------------------- var base64Str = document.getElementById("hData");  ←zipファイルのbinaryをbase64変換した値が格納されているhidden項目の値を取得しています。 var binaryStr = ConvertBase64.decode(base64Str); ←base64文字列を復号する処理です。この時点では元のZipファイルのBinaryデータと一致しています。 $.ajax({ type: "POST", url: "test.ashx", catche: false, headers: { "test": "aaaa" }, data: binaryStr })

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

> (ashxで受信したTotalBytesの値が送信データよりも多くなってしまっていました。) もう少し詳しく。 頭にゴミが付くとか。 サイズが1.33倍になるとか。 > var binaryStr = ConvertBase64.decode(base64Str); base64文字列を送信してashx側でdecodeすればよいのでは?

関連するQ&A