2017-01-26 13 views
1

У меня проблема с запросами HTTP. Все работает отлично в Ionic View, браузере и Android, но не работает на IOS. Запросы GET также отлично работают на IOS. Любые догадки, что это может быть?POST-запросы не работают на IOS в приложении Ionic2

Я могу предоставить вам дополнительную информацию, просто скажите мне, какая информация вам нужна. Вот то, что у меня есть в моем пакете. 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" 
    }, 

Бэкэнд получает пустое тело после запроса. Вот что я получаю:

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"} 

Не стесняйтесь спрашивать что-нибудь и благодарит вас за помощь!

UPDATE: Мы переместили наш бэкенд к HTTPS и теперь все работает отлично :)

+0

Покажите нам код, пожалуйста, не может отладить то, что мы не можем видеть. – Ivaro18

+0

К сожалению, контракт не позволяет мне это делать. Я просто понял, что запросы HTTPS POST в моем коде работают нормально на IOS, поэтому я думаю, что проблема связана только с использованием HTTP-адресов –

+0

, имеющих аналогичную проблему, https решила проблему, но это делает меня очень неудобным. Добавлено вопрос на ionic - https://forum.ionicframework.com/t/ionic2-rc5-body-removed-from-post-put-calls/77591 ответа пока нет –

ответ

2

Официальный ответ, кажется, здесь:

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

Apple, просто решил обеспечить использование HTTPS , Я подозреваю, что Cordova/Ionic просто не справляются с этим успехом на данный момент (ака ошибка не выбрасывается, она не документирована и т. Д.)

Следует помнить, что инспектор сафари покажет, что данные отправляются на сервер - это неверно все отправленные данные удаляются (все тело) в приложении iOS (я потерял день на этом).

Как уже упоминалось Дмитро Garastovych, правильное решение (и только), чтобы перейти к HTTPS

 Смежные вопросы

  • Нет связанных вопросов^_^