2

我在 Angular 10 中构建了 Angular 项目。当我从浏览器打开谷歌翻译时,我在从 IOS chrome 浏览器调用 api 时遇到问题。

如果我不打开翻译,它会给我正确的 API 响应

但是,当我打开翻译时,我收到了这个错误。

InvalidAccessError The object does not support the operation or argument

如果我从 Iphone 中的设置进行翻译,则仅当我从浏览器进行翻译时才会发生错误,它工作正常。

它在笔记本电脑的所有浏览器中也能正常工作。

如果使用 javascriptfetch函数而不是 angular,HttpClient那么它可以正常工作,HttpClient请求甚至不会发送到服务器。它甚至在发送请求之前就给出错误。

4

1 回答 1

2

这是因为 HTTPClient 默认需要一个 json 作为响应,当你打开翻译时,它不再是一个 json。尝试接收响应

this.http.post(this.url, body, {responseType: 'text'}).subscribe((res)=> console.log(res));

身体也应该是一个像

body=JSON.stringify(data);

如果它打印然后如果你觉得它不是一个 json 然后通过你的代码将它映射到 javascript 对象,如果它看起来是一个 json 然后使用

JSON.parse(res);
于 2020-12-18T18:55:21.207 回答