AJAX 标头中的希伯来语字符

我正在使用 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"不起作用。


LEATH
浏览 142回答 2
2回答

慕妹3146593

尝试将文本编码为 utf8,例如:unescape(encodeURIComponent(yourText)) //encodedecodeURIComponent(escape(yourText)) //decode

MM们

根据https://bugs.chromium.org/p/chromium/issues/detail?id=319694#c9,标题似乎仅限于 ASCII 字符。如果您尝试将 UTF-16 值传递给端点,请考虑将其作为 POST 正文的一部分。如果必须将值保留为标头,还可以对文件名进行 Base 64 编码并在服务器端解码。这是 base-64 编码的示例 בוקר
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript