无法从 cordova android 应用调用本地网络 api

Cannot call local web api from cordova android app

我目前正在 Visual Studio 2015 RC 中开发一个 cordova 4.3 android 应用程序。这是一个 AngularJS 应用程序,我使用 $resource 将请求发送到同一台计算机上不同端口上的 ASP.NET Web Api 应用程序 运行。如果我禁用跨域代理,则在 Ripple 中调试应用程序可以正常工作,但是当我尝试在 Visual Studio Android 模拟器或我的 Android 设备上进行调试时,我得到的不是很有帮助 "Failed to load resource" 一旦尝试访问网络 api。 url 看起来正确,我怀疑问题与 CORS 或我的 HTTPS 证书或两者有关?到目前为止我尝试过的是:

  1. 在清单文件中设置 <uses-permission android:name="android.permission.INTERNET" />android:debuggable="true"
  2. 已尝试 chrome://inspect/#devices 获取有关该问题的更多信息,但收到错误消息 "Cannot load DevTools frontend from an untrusted origin"。
  3. 我可以使用非常有用的工具 sharpproxy [https://www.codefromjames.com/wordpress/?p=97] 将我的 android phone chrome 网络浏览器连接到本地主机网络 api 但是不幸的是,这种方法不适用于应用程序的网络视图。
  4. 当我将应用程序指向我的 azure 托管实时网络 api 端点时,ajax 请求确实有效,我拥有有效的 https 证书,但在开发应用程序时使用起来不是很方便.
  5. 确保 config.xml 文件包含 <access origin="*" />
  6. 我的网站 api 配置为 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll)

我是 cordova/hybrid 应用程序开发的新手,我肯定遗漏了一些明显的东西?任何帮助或建议将不胜感激!!

在 Visual Studio 2015 出现各种问题后,我将其卸载并回到 Visual Studio 2013 Update 4,现在我可以将我的 android 设备连接到本地 运行ning web api 使用我在上面提到并链接到的 sharp proxy。

所以要清楚:

  1. 使用 Visual Studio 2013 更新 4 运行 您的网站 api 例如 url https://localhost:44358/
  2. 使用外部端口 5000 和内部端口 44358 启动 sharp proxy。
  3. 确保您的 android 设备连接到同一 wifi 并指示您的应用使用 https://your-ip-address:5000 进行所有服务呼叫。