繁体   English   中英

无法从Cordova Android应用程序调用本地Web 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设备中进行调试时,尝试达到该目标后,会收到一个非常有用的“无法加载资源”信息网络API。 网址看起来正确,我怀疑问题与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网络浏览器连接到localhost网络api,但不幸的是,这种方法不适用于该应用程序的网页流量。
  4. 当我将应用程序指向我的azure托管实时Web api端点时,ajax请求确实起作用,在该端点上我具有有效的https证书,但是在开发应用程序时使用起来不太方便。
  5. 确保config.xml文件包含<access origin="*" />
  6. 我的Web API使用app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll)配置

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

在遇到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启动Sharp代理。
  3. 确保您的android设备已连接到同一wifi,并指示您的应用对所有服务呼叫使用https://您的IP地址:5000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM