0

Ionic Native HTTP为 IOS 模拟器中的单个 API 调用返回 {status: -1}

我正在使用 Ionic Native HTTP 来解决 IOS 中的 CORS 问题,并且有一个 Wordpress API 调用 /wp-json/wp/v2/ 始终返回 -1,尽管其他 /wp-json/wp/v2 / api 调用工作得很好。

此外,这在 Android 中运行良好,只是 IOS 有问题。

HTTP 代码,其中 http = @ionic-native/http/ngx

const url = https://example.com/wp-json/wp/v2/data?order=asc&order_by=id&per_page=100&after=2020-07-30 00:00:00&before=2020-07-30 23:59:59;

this.http.get(url, {}, {})
  .then((data) => {
    console.log('returning data');
    console.log(data);
  })
  .catch((err) => {
    console.log('erroring');
    console.log(err);

    console.log(err.status);
    console.log(err.error); // error message as string
    console.log(err.headers);
  });

这段代码没有什么特别之处,它只是一个 Wordpress API 调用,但我总是得到 -1 返回。这个问题指出这是一个 CORS 问题,飞行前的 OPTIONS 请求被拒绝,但 Native HTTP 的全部目的是避免 CORS,因为我无法修改服务器。

有没有其他人遇到并修复了这个状态 -1 问题?

编辑 见下面我的回答。

4

1 回答 1

1

问题是 URL 中的空格,似乎 Android 和浏览器会自动将空格替换为 %20,但 IOS 不会。

因此,新的 URL 应该如下所示,现在可以正常工作了。

const url = https://example.com/wp-json/wp/v2/data?order=asc&order_by=id&per_page=100&after=2020-07-30%2000:00:00&before=2020-07-30%2023:59:59;
于 2020-09-25T01:41:56.267 回答