【发布时间】:2015-07-22 19:52:25
【问题描述】:
大家好,我正在使用 node server 获取数据,客户端是我的 ionic framework 用于 Android 应用程序(phonegap)。
所以在我的计算机浏览器中我点击localhost:8080/sessions(或10.129.86.47:8080/sessions)然后它会从服务器端返回json,但是当我在android设备中以apk运行这个离子应用程序时它不会点击由于跨域到服务器。
我的服务器和我的客户端应用程序都在同一个网络中。
我喜欢 2 到 3 的解决方案,但它对我不起作用
我尝试的解决方案如下:
1) 首先我尝试了 ionic proxy,我为 ionic 设置了代理,它会访问我的代理 url,但它不会工作。
示例:在 ionic.project 文件中我输入了代理
2) 第二次我尝试了白名单 示例:
<access origin="http://google.com" />
<access origin="https://google.com" />
<access origin="*" /> <!-- Don't block any requests -->
如果我使用 * 那么这意味着不要阻止任何请求,但它对我不起作用
据我所知,当 phonegap android 应用程序命中服务时,它会像 file://and ....... 所以它不会命中我的服务器表单应用程序,但 Cordova 默认允许跨域请求,但对我来说它不起作用。
【问题讨论】:
-
您是否尝试过在服务器上设置 CORS 标头(Access-Control-Allow-Headers、Access-Control-Allow-Methods、Access-Control-Allow-Origin)?
-
是的,我也完成了那部分
-
您的应用程序是否连接到网络?控制台日志中显示的确切错误是什么?
-
是的,我连接到同一个网络,如果我从我的 android 浏览器中点击相同的 url,则服务器会以 json 响应,但如果我从 android 应用程序中点击相同的 url,那么当时我的 url 将无法正常工作不是http它会变成file://........我在计算机浏览器和android logcat中远程看到我的日志实际上它没有点击文件的url bcz :// 我认为
-
如果你有cordova 5.0.0,那么你需要github.com/apache/cordova-plugin-whitelist 用于CORS
标签: javascript angularjs ionic-framework