首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >离子型4 iOS应用程序请求引发错误未知,状态0

离子型4 iOS应用程序请求引发错误未知,状态0
EN

Stack Overflow用户
提问于 2019-09-04 12:13:01
回答 1查看 807关注 0票数 0

我有一个Ionic 4与角度应用程序,连接到我的API。在Android / Browser上,对API的调用是有效的(控制台上没有错误)。然而,在iOS上,我有时会得到一个错误“状态”:0,"statusText":“未知错误”

代码语言:javascript
运行
复制
ERROR: {
"headers":{"normalizedNames":{},
"lazyUpdate":null,
"headers":{}},
"status":0,
"statusText": "Unknown Error",
"url":"https://api.domain.com/v2/profile",
"ok":false,
"name":"HttpErrorResponse",
"message":"Http failure response for https://api.domain.com/v2/profile: 0 Unknown Error",
"error":{"isTrusted":true}}

奇怪的是,这不是一直都在发生的。

设想情况:

  1. 角httpClient调用https://api.domain.com/v2/profile => Works,获取数据
  2. 另一次对https://api.domain.com/v2/list => Works的GET调用(导航)
  3. 回到上一页,对https://api.domain.com/v2/profile的新GET调用失败并抛出错误。

不管导航多少次,它都会随机抛出上述错误。如果它与CORS有关,我想每次您在iOS上执行请求时,它都会抛出错误。

离子信息

离子:

代码语言:javascript
运行
复制
   Ionic CLI                     : 5.2.7 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.8.1
   @angular-devkit/build-angular : 0.801.3
   @angular-devkit/schematics    : 8.3.2
   @angular/cli                  : 8.3.2
   @ionic/angular-toolkit        : 2.0.0

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : ios 5.0.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 10 other plugins)

Utility:

   cordova-res : 0.6.0 
   native-run  : 0.2.8 

System:

   ios-sim : 8.0.2
   NodeJS  : v10.16.3 (/usr/local/bin/node)
   npm     : 6.9.0
   OS      : macOS Mojave
   Xcode   : Xcode 10.2.1 Build version 10E1001

Safari控制台截图:https://imgur.com/a/BNXAB7Y

EN

回答 1

Stack Overflow用户

发布于 2020-02-10 22:09:50

这个答案可以让我找到答案Preflight response is not successful with proper headers

离子的常见问题解答有助于理解https://ionicframework.com/docs/faq/cors

对我来说,这个Apache的配置是在虚拟主机conf中完成的:

代码语言:javascript
运行
复制
# Always set these headers.
#you can restrict the domain to allow here
SetEnvIf Origin "^(.*)$" AccessControlAllowOrigin=$0
Header always set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"

# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57788175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档