无法对“XMLHttpRequest”执行“setRequestHeader”:值不是有效的字节字符串

Dip*_*ika 2 ionic-framework angular ionic4

当我尝试在 Angular 应用程序中上传 Base64 图像时,http.post 方法会抛出错误:

\n\n
Failed to execute \'setRequestHeader\' on \'XMLHttpRequest\': Value is not a valid ByteString.\n
Run Code Online (Sandbox Code Playgroud)\n\n

代码如下所示:

\n\n
let headers = new Headers();\n      headers.append("Accept", \'application/json\');\n      headers.append("Content-Type", "application/json");\n      headers.append(\'User-Agent\', \'Mozilla/5.0 (Windows NT 10.0; \xe2\x80\xa6) Gecko/20100101 Firefox/68.0\' );\n\n      let postData = {\n        "AudometerCapture":this.abc,                          \n        "Door1":this.abc,\n        "Door2":this.abc,\n       "Door3":this.abc,\n        "Door4":this.abc,\n       "TransactionID": 90\n    }\n\n      this.http.post(\'http://apiearningwheels.sharpnettechnology.com/api/DailyImageUpload/UploadDailyImages\', JSON.stringify(postData), {headers: headers})\n        .map(res => res.json())\n        .subscribe(data => {\n          console.log(data);\n          this.showLongToast("result is :- " + res);\n        });\n
Run Code Online (Sandbox Code Playgroud)\n\n

我期望输出是,\'result is = \'但我收到错误。

\n\n

该请求使用 Postman 可以正常工作。

\n

qri*_*jan 5

抛出该错误是因为最后一个 header 中存在三个点的符号(\xe2\x80\xa6),无法正确转换为 ByteString。

\n\n

所以你必须删除该行或像这样更改它:

\n\n
headers.append(\'User-Agent\', \'Mozilla/5.0 (Windows NT 10.0; \xe2\x80\xa6) Gecko/20100101 Firefox/68.0\' );\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
headers.append(\'User-Agent\', \'Mozilla/5.0 (Windows NT 10.0;) Gecko/20100101 Firefox/68.0\' );\n
Run Code Online (Sandbox Code Playgroud)\n\n

我使用https://codesandbox.io/s/angular测试了标头,它在该行上抛出了一个错误:Cannot convert string to ByteString because the character at index 30 has value 8230 which is greater than 255.

\n