上传文件报错:String contains non IS0-8859-1 code point.

作者:Administrator 发布时间: 2025-07-30 阅读量:1

❌ 报错内容

Uncaught TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non IS0-8859-1 code point.

根据 XMLHttpRequest 规范setRequestHeader 方法要求 header 的名称和值都必须是 ISO-8859-1 字符集中的字符。如果你尝试设置包含中文、Emoji 或其他 Unicode 字符(如 UTF-8 编码的字符),就会抛出这个 TypeError

🐞 解决办法

更改上传的文件名称为英文字符,不要包含中文。

📖 总结

这个错误的核心是字符编码问题。最安全、最符合标准的做法是:

  • Header 名称:使用标准的、仅包含 ASCII 字符的名称。

  • Header 值:尽量只使用 ASCII 字符。如果必须传递非 ASCII 数据,进行 URL 编码(encodeURIComponent),或者(更推荐)将数据移到请求体中。

通过遵循这些原则,可以避免 String contains non ISO-8859-1 code point 错误。