4

早期的代码在所有浏览器中都运行良好。更新到 Mozilla 的新版本后出现错误。在谷歌我发现只有一个链接 - https://bugzilla.mozilla.org/show_bug.cgi?id=796850,我不明白,如何摆脱问题。

TypeError: Cannot convert string to ByteString because the character at index 0 has value 1054 which is greater than 255.
xhr.setRequestHeader("X-File-Name", file.name);

在这段代码中:

....
xhr.open('POST', get_page_url() + '?operation=upload_files');
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("X-File-Name", file.name);
xhr.send(file);
...

file.name带有扩展名的普通西里尔文文件名中。

4

1 回答 1

6

我解决了问题:

xhr.setRequestHeader("X-File-Name", file.name);

换成..

xhr.setRequestHeader("X-File-Name", unescape(encodeURIComponent(file.name)));
于 2013-10-07T09:28:40.360 回答