我有一个 ionic-angularjs 应用程序,它向 Slim3 框架远程 url ( http://xxx.cloudapp.net/xxx/api/v1/login/username/password ) 发出 post 请求,但我总是得到 404 状态代码为在屏幕截图中显示
即使我将 REST API 托管在不同的 IP 地址中,也会发生同样的情况。
我已经检查过了,我已经看到了像添加我已经完成的cordova-whitelist插件这样的解决方案,但错误仍然存在(甚至再次删除和添加插件以及删除和添加android平台)。我什至设置了CORS。
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin, Content-Type,x-www-form-urlencoded, x-xsrf-token, X-Auth-Token , Authorization');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400');
header('Access-Control-Allow-Methods: POST, GET, DELETE, OPTIONS, PUT');
最大的难题是当我使用 chrome 浏览器、Postman 以及安装 APK 文件并且手机在 WIFI 上进行测试时,该应用程序运行良好,当我使用来自不同移动提供商的移动数据时它也运行良好,除了对于具有此 IP (172.22.2.38:8080) 的移动提供商。
另一个奇怪的事情是,当我使用从 Play 商店下载的 Advanced Rest API 发送发布请求时,在 (172.22.2.38:8080) 中,只要我将 Body->Type 设置为“x-”,请求就会返回 200 状态码www-form-urlencoded'。所以问题似乎是当我使用带有 angularjs $http 的发布请求时。
这是 androidManifest.xml(它的一部分)
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
和 config.xml 看起来像这样(它的一部分)
<access origin="*" subdomains="true"/>
<allow-navigation href="*"/>
<plugin name="cordova-plugin-device" spec="~1.1.3"/>
<plugin name="cordova-plugin-console" spec="~1.0.4"/>
<plugin name="cordova-plugin-splashscreen" spec="~4.0.0"/>
<plugin name="cordova-plugin-statusbar" spec="~2.2.0"/>
<plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
<plugin name="cordova-plugin-whitelist" spec="https://github.com/apache/cordova-plugin-whitelist.git"/>
<plugin name="cordova-plugin-contacts" spec="~2.2.1"/>
<plugin name="cordova-plugin-camera" spec="~2.3.1"/>
<plugin name="cordova-plugin-media-capture" spec="~1.4.1"/>
<plugin name="cordova-plugin-file" spec="~4.3.1"/>
<plugin name="cordova-plugin-file-transfer" spec="~1.6.1"/>
我已经被困了将近两个星期,任何帮助将不胜感激。