无法从 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 证书或两者有关?到目前为止我尝试过的是:
- 在清单文件中设置
<uses-permission android:name="android.permission.INTERNET" />
和 android:debuggable="true"
。
- 已尝试 chrome://inspect/#devices 获取有关该问题的更多信息,但收到错误消息 "Cannot load DevTools frontend from an untrusted origin"。
- 我可以使用非常有用的工具 sharpproxy [https://www.codefromjames.com/wordpress/?p=97] 将我的 android phone chrome 网络浏览器连接到本地主机网络 api 但是不幸的是,这种方法不适用于应用程序的网络视图。
- 当我将应用程序指向我的 azure 托管实时网络 api 端点时,ajax 请求确实有效,我拥有有效的 https 证书,但在开发应用程序时使用起来不是很方便.
- 确保 config.xml 文件包含
<access origin="*" />
- 我的网站 api 配置为
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll)
我是 cordova/hybrid 应用程序开发的新手,我肯定遗漏了一些明显的东西?任何帮助或建议将不胜感激!!
在 Visual Studio 2015 出现各种问题后,我将其卸载并回到 Visual Studio 2013 Update 4,现在我可以将我的 android 设备连接到本地 运行ning web api 使用我在上面提到并链接到的 sharp proxy。
所以要清楚:
- 使用 Visual Studio 2013 更新 4 运行 您的网站 api 例如 url https://localhost:44358/。
- 使用外部端口 5000 和内部端口 44358 启动 sharp proxy。
- 确保您的 android 设备连接到同一 wifi 并指示您的应用使用 https://your-ip-address:5000 进行所有服务呼叫。
我目前正在 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 证书或两者有关?到目前为止我尝试过的是:
- 在清单文件中设置
<uses-permission android:name="android.permission.INTERNET" />
和android:debuggable="true"
。 - 已尝试 chrome://inspect/#devices 获取有关该问题的更多信息,但收到错误消息 "Cannot load DevTools frontend from an untrusted origin"。
- 我可以使用非常有用的工具 sharpproxy [https://www.codefromjames.com/wordpress/?p=97] 将我的 android phone chrome 网络浏览器连接到本地主机网络 api 但是不幸的是,这种方法不适用于应用程序的网络视图。
- 当我将应用程序指向我的 azure 托管实时网络 api 端点时,ajax 请求确实有效,我拥有有效的 https 证书,但在开发应用程序时使用起来不是很方便.
- 确保 config.xml 文件包含
<access origin="*" />
- 我的网站 api 配置为
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll)
我是 cordova/hybrid 应用程序开发的新手,我肯定遗漏了一些明显的东西?任何帮助或建议将不胜感激!!
在 Visual Studio 2015 出现各种问题后,我将其卸载并回到 Visual Studio 2013 Update 4,现在我可以将我的 android 设备连接到本地 运行ning web api 使用我在上面提到并链接到的 sharp proxy。
所以要清楚:
- 使用 Visual Studio 2013 更新 4 运行 您的网站 api 例如 url https://localhost:44358/。
- 使用外部端口 5000 和内部端口 44358 启动 sharp proxy。
- 确保您的 android 设备连接到同一 wifi 并指示您的应用使用 https://your-ip-address:5000 进行所有服务呼叫。