【问题标题】:Cannot call local web api from cordova android app无法从科尔多瓦 android 应用程序调用本地 Web api
【发布时间】:2015-08-05 12:53:55
【问题描述】:

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

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

我对 Cordova/混合应用程序开发完全陌生,肯定会遗漏一些明显的东西吗?任何帮助或建议将不胜感激!

【问题讨论】:

  • 你使用的是“localhost”还是pc本地IP?
  • 我已经尝试了所有可能的组合:)

标签: android angularjs cordova asp.net-web-api visual-studio-cordova


【解决方案1】:

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

所以要清楚:

  1. 使用 Visual Studio 2013 Update 4 在例如 url https://localhost:44358/ 上运行您的 Web api。
  2. 使用外部端口 5000 和内部端口 44358 启动快速代理。
  3. 确保您的 android 设备连接到同一个 wifi 并指示您的应用使用 https://your-ip-address:5000 进行所有服务调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    相关资源
    最近更新 更多