URL的状态0响应:null

时间:2017-10-24 18:19:43

标签: angular ionic-framework ionic3

我有一个Ionic 3应用程序,它使用与我以前的离子应用程序相同的API。

登录时我现在收到以下错误:

  

状态响应:URL为0:null

我环顾四周,每个人都在服务器端一直提到CORS问题,但由于我的API以前工作过,现在仍在现有应用程序中,所以情况并非如此。

这是我的登录信息:

login(credentials) {

    return new Promise((resolve, reject) => {
      this.http.post(this.global.base() + 'login', JSON.stringify(credentials), { headers: this.contentHeader })
        .subscribe(res => {
          resolve(res.json());
        }, (err) => {
          reject(err);
        });
    });

  }

我的配置xml(为了说明而修剪):

<content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
<plugin name="cordova-plugin-device" spec="^1.1.4" />
    <plugin name="cordova-plugin-ionic-webview" spec="^1.1.16" />
    <plugin name="cordova-plugin-splashscreen" spec="^4.0.3" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
    <plugin name="cordova-sms-plugin" spec="^0.1.11" />
    <plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
    <engine name="ios" spec="~4.4.0" />

我的index.html:

<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">

  <meta name="format-detection" content="telephone=no">
  <meta name="msapplication-tap-highlight" content="no">

  <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
  <link rel="manifest" href="manifest.json">
  <meta name="theme-color" content="#4e8ef7">

  <!-- add to homescreen for ios -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">

我的设置:

cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.14.0
    ionic (Ionic CLI) : 3.14.0

global packages:

    cordova (Cordova CLI) : 7.0.1

local packages:

    @ionic/app-scripts : 3.0.1
    Cordova Platforms  : ios 4.4.0
    Ionic Framework    : ionic-angular 3.7.1

System:

    ios-deploy : 1.9.2
    Node       : v7.7.1
    npm        : 4.1.2
    OS         : macOS Sierra
    Xcode      : Xcode 9.0.1 Build version 9A1004

Misc:

    backend : legacy

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

这是因为ios上的WKWebView。 WkWebView包含CORS并且没有办法禁用它,所以你需要将api上的原点列入白名单 - 访问 - Control-Allow-Origin: *。如果您不拥有api,则可以使用本机http插件。

此处有更多信息https://blog.ionic.io/wkwebview-for-all-a-new-webview-for-ionic/

答案 1 :(得分:0)

我遇到了同样的问题,我刚刚检查了uri rest api,它以'/'结尾,我删除了它,一切恢复正常