只需将
file引用作为数据发送(使用
processdata: false)至少对我有用:
$('#_testButton').bind('click', function () { var file = document.getElementById('_testFile').files[0]; $.ajax({ url: "/attachmentURL", type: "POST", data: file, processdata: false });});它在这里描述:https
:
//developer.mozilla.org/en/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data#section_3
发送字符串(即使该字符串表示二进制数据)也不起作用,因为浏览器会强制将其转换为unipre并按照指定的编码为utf-8进行操作,这会破坏二进制数据:
如果data是字符串,则将编码设为UTF-8。
假设mime类型为“ text / plain; charset = UTF-8”。
让请求实体主体为将数据转换为Unipre并编码为UTF-8的数据。
发送
file参考(
blob)将执行以下操作:
如果data是Blob如果对象的type属性不是空字符串,则将mime type作为其值。
令请求实体主体为data表示的原始数据。



