【问题标题】:POST requests not working on IOS in Ionic2 AppPOST 请求在 Ionic2 App 中的 IOS 上不起作用
【发布时间】:2017-06-11 20:51:05
【问题描述】:

我遇到了 HTTP 请求问题。在 Ionic View、浏览器和 Android 中一切正常,但在 IOS 上不工作。 GET 请求在 IOS 上也可以正常工作。任何猜测,那会是什么?

我可以为您提供更多信息,请告诉我您需要哪些信息。这是我的 package.json 中的内容:

"dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@ionic/cloud-angular": "0.7.0",
    "@ionic/storage": "1.1.7",
    "@types/moment-timezone": "0.2.32",
    "ionic-angular": "2.0.0-rc.4",
    "ionic-native": "2.4.1",
    "ionicons": "3.0.0",
    "moment": "2.15.1",
    "moment-timezone": "0.5.7",
    "ng2-translate": "5.0.0",
    "rxjs": "^5.0.0-beta.12",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "^1.0.0",
    "sw-toolbox": "^3.4.0",
    "typescript": "2.0.9"
  },

后端收到一个post请求的空白正文。这是我得到的结果:

ERROR: {"_body":"{\"error\":\"Sign up error\",\"message\":{\"first_name\":[\"First Name cannot be blank.\"],\"last_name\":[\"Last Name cannot be blank.\"],\"email\":[\"Email cannot be blank.\"],\"device_id\":[\"Device Id cannot be blank.\"]}}","status":422,"ok":false,"statusText":"Bad Request","headers":{"Content-Type":["application/json; charset=UTF-8"],"Pragma":["no-cache"]},"type":2,"url":"http://app.EDITED"}

请随时提出任何问题,感谢您的帮助!

更新:我们将后端移至 HTTPS,现在一切正常 :)

【问题讨论】:

  • 请向我们展示您的代码,无法调试我们看不到的内容。
  • 不幸的是,合同不允许我这样做。我刚刚发现我的代码中的 HTTPS POST 请求在 IOS 上运行良好,所以我猜问题仅在于使用 HTTP url
  • 有类似的问题,https解决了这个问题,但这让我很不舒服。在 ionic 上发布了一个问题 - forum.ionicframework.com/t/… 到目前为止没有回应

标签: ios cordova http-post ionic2 hybrid-mobile-app


【解决方案1】:

官方的答案好像在这里:

https://techcrunch.com/2016/06/14/apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/

Apple 只是决定强制使用 HTTPS。我怀疑 Cordova / Ionic 目前根本无法很好地处理这个问题(也就是没有抛出错误,没有记录等)

请记住,safari 检查器将显示数据正在发送到服务器 - 不正确所有发送的数据都在 iOS 应用程序中被删除(整个正文)(我失去了一天关于这个)。

正如 Dmytro Garastovych 所提到的,正确的(也是唯一的)解决方案是迁移到 HTTPS

【讨论】:

    猜你喜欢
    • 2021-01-30
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多