我正在发送AJAX请求,例如:
$.ajax({
type: 'POST',
async: true,
crossDomain: true,
url: 'http://localhost:1234/api/file/upload',
data: formData,
processData: false,
contentType: false,
headers: {
"FileName": filename
},
success: function (data, textStatus, jqXHR) {}
});
filename
不是用英语(某些其他语言)书写时,出现此错误:
错误扫描fileTypeError:无法对'XMLHttpRequest'执行'setRequestHeader':值不是有效的ByteString
答案 0 :(得分:0)
HTTP标头field-value
受限制,请参见RFC 7230 §3.2, §3.2.4。
标题仍然是错误的。请改用Content-Disposition
(RFC 6266)。它带有参数filename*
,该参数允许使用编码值(RFC 8187)。例如,对解码的文件名£ and € rates
进行编码:
Content-Disposition: inline; filename*=UTF-8''%c2%a3%20and%20%e2%82%ac%20rates