菜鸟教程小白 发表于 2022-12-12 23:46:47

ios - POST 请求在 Ionic2 App 中的 IOS 上不起作用


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

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

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

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

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

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

<p>更新:我们将后端移至 HTTPS,现在一切正常 :)</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>官方的答案好像在这里:</p>

<p> <a href="https://techcrunch.com/2016/06/14/apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/" rel="noreferrer noopener nofollow">https://techcrunch.com/2016/06/14/apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/</a> </p>

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

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

<p>正如 Dmytro Garastovych 所提到的,正确(也是唯一)的解决方案是迁移到 HTTPS </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - POST 请求在 Ionic2 App 中的 IOS 上不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41872521/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41872521/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - POST 请求在 Ionic2 App 中的 IOS 上不起作用