网站搜索

node.js - 错误 - TypeError:仅在 Safari 中出现类型错误,在 Angular 5 应用中向 API 服务器发出 GET 请求后


所以我正在基于 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');
});

有人知道怎么解决这个问题吗?

答案#1

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

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

答案#2

我有一个使用 Inapp_Webview 的 Flutter App,它指向一个 Angular 1.X Web 应用程序,并且在将我的 iOS 设备名称更改为包含撇号后,所有 XHR 请求都收到了 TypeError。

(*想留下评论,但还没有足够的声望)