george-es / Blog

My Blog
0 stars 0 forks source link

Request请求:Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1 code point. #73

Open george-es opened 3 years ago

george-es commented 3 years ago

问题:

Uncaught (in promise) TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1 code point.

问题定位: 上传文件名为中文时报错

类型错误:未能在“XMLHttpRequest”上执行“setRequestHeader”:字符串包含非ISO-8859-1代码点。

image

问题分析:

初步怀疑是中文名导致的,在前端页面发送request请求到后台时,请求头即 header 中放入了中文,所以就会出现编码格式问题。

代码速览: 文件上传功能,调用 ali-oss 的 put 方法上传文件,在 meta 中设置 filename image

解决方案 要解决问题就要对中文字符进行编码,到后台里再进行解码接收处理。 image

image

// 编码
encodeURIComponent(str)
// 解码
decodeURIComponent(str)