【问题标题】:ionic cross domain issue离子跨域问题
【发布时间】: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 文件中我输入了代理

{ “名称”:“代理示例”, "app_id": "", “代理”:[ { “路径”:“/会话”, “proxyUrl”:“http://10.129.86.47:8080/sessions” } ] }

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


【解决方案1】:

这个问题通常只是运行 ionic serve。

您可以避免修改您的项目并使用扩展来禁用 CORS,对于 chrome:

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi/related

对于火狐:

https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2017-08-15
    • 2012-03-12
    相关资源
    最近更新 更多