错误-TypeError:仅在向 Angular 5 应用程序内的 api 服务器发出 GET 请求后,在 Safari 上输入错误

Posted

技术标签:

【中文标题】错误-TypeError:仅在向 Angular 5 应用程序内的 api 服务器发出 GET 请求后,在 Safari 上输入错误【英文标题】:ERROR - TypeError: Type error only on Safari after made GET request to the api server inside angular 5 app 【发布时间】:2018-05-14 07:30:18 【问题描述】:

所以我在 Angular 5 之上制作网络应用程序。 问题是当我尝试从服务器调用 api 端点时。

当我收到错误响应 (400+) 时,似乎在 Safari 上它总是抛出并破坏应用程序。

ERROR - TypeError: Type error
ERROR CONTEXT – DebugContext_ view: Object, nodeIndex: 0, nodeDef: Object, …

但在 Chrome 上,它可以像这样正确处理错误。

GET https://api.xxxx.com/projectname/v1.0/validation/access-token 400 (Bad Request)

这是我的源代码

const baseUrl = environment.apiUrl;
const fullUrl = baseUrl + '/productname/v1.0/validation/access-token';

const headers = new HttpHeaders(
     'X-Access-Token': access_token
);

this.http.get(fullUrl, 
    headers: headers
).subscribe((res: any) => 
   console.log(res, 'http res');
,
(error: any) => 
    console.log(error, 'http err');
);

有人知道如何解决这个问题吗?

【问题讨论】:

您找到解决方案了吗?我也有同样的问题。 我不记得了,但如果我没记错的话,原因是 api 的响应格式不正确。 感谢您的回复,但相同的代码适用于具有任何操作系统版本的所有其他 androidios 设备。只有一台运行 iOS 12 的特定设备(iPhone 7)存在此问题。 【参考方案1】:

经过大量调试,我找出了导致我的问题。在每个请求中,我都发送了移动设备的名称,就我而言,它是 Shashank 的 iPhone

在标头中使用 单引号 调用 setRequestHeader 失败,因此所有 HTTP 请求都中断了。

【讨论】:

以上是关于错误-TypeError:仅在向 Angular 5 应用程序内的 api 服务器发出 GET 请求后,在 Safari 上输入错误的主要内容,如果未能解决你的问题,请参考以下文章

Angular 12 TypeError:无法在 HttpHeaders.applyUpdate 处读取 null 的属性(读取“长度”)

Angular:错误:未捕获(承诺):TypeError:Object(...)不是函数

Angular 6 TypeError:无法读取未定义的属性(读取“长度”)错误

AJAX错误:TypeError:在此上下文中无法访问“arguments”,“callee”和“caller”

显示错误 angular.js:12477 TypeError: $(...).intlTelInput is not a function

在 Angular => 错误中显示数据列表时出现此错误:TypeError:无法读取未定义的属性“0”