为了账号安全,请及时绑定邮箱和手机立即绑定

AJAX 标头中的希伯来语字符

AJAX 标头中的希伯来语字符

LEATH 2021-12-23 16:07:18
我正在使用 AJAX 将文件发送到某些服务器,例如:$.ajax({            type: 'POST',            async: true,            crossDomain: true,            url: 'http://' + address + '/api/file/upload',            data: formData,            processData: false,            contentType: false,             headers: {                "apiKey": "myKey",                "FileName": "קובץ.txt"            },            success: function (data, textStatus, jqXHR) {}});代码工作正常,但是当我在标题中放置希伯来文文件名时,出现错误:错误扫描文件类型错误:无法在“XMLHttpRequest”上执行“setRequestHeader”:值不是有效的 ByteString标题:"FileName": "קובץ.txt"不起作用。
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

尝试将文本编码为 utf8,例如:


unescape(encodeURIComponent(yourText)) //encode


decodeURIComponent(escape(yourText)) //decode


查看完整回答
反对 回复 2021-12-23
?
MM们

TA贡献1886条经验 获得超2个赞

根据https://bugs.chromium.org/p/chromium/issues/detail?id=319694#c9,标题似乎仅限于 ASCII 字符。如果您尝试将 UTF-16 值传递给端点,请考虑将其作为 POST 正文的一部分。

如果必须将值保留为标头,还可以对文件名进行 Base 64 编码并在服务器端解码。这是 base-64 编码示例 בוקר


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信