2015-05-28 86 views
5

如何在Android上的Ionic Framework中执行跨域http请求?如何在Android上的Ionic Framework中执行跨域http请求?

我试图在ionic.project中设置代理,没有帮助。以下是我的要求去做:

$http.get('http://localhost:8100/getnews/?hashcode=' + hashcode + '').then(function (resp) { 
     ... 
    }, function (err) { 
     ... 
    } 

这里的ionic.project:

{ 
    "name": "...", 
    "app_id": "...", 
    "proxies": [ 
     { 
     "path": "/getnews", 
     "proxyUrl": "http://yukigaru.pythonanywhere.com/getnews/" 
     } 
    ] 
} 

它并不适用于Android,功能(ERR)分支总是被调用。它适用于一台电脑的浏览器,不适用于另一台电脑的浏览器。

Cordova 5.0.0,Ionic 1.3.20,Android 5.x.

+0

你使用phonegapp还是cordova?如果确定访问原点设置正确,请参阅:[cross origin](http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html) – Praveen

+0

您在说哪种浏览器?铬?即? –

+0

你使用的是cordova-android平台的版本4还是旧版本?如果使用版本4,则必须确保在项目中包含cordova-plugin-whitelist插件。 – QuickFix

回答

0

我最终什么在我的离子的应用程序做的是,我加入这其中扮演着JSON API(和我从离子应用程序调用)的PHP文件:

header('Access-Control-Allow-Origin: *'); 

所以,如果你控制API端点服务器并且能够做出类似的改变(你没有提到你使用的是哪个API堆栈),你应该没问题。 如果任何人有一个更好的使用情况,请回复...

0

localhost是“本机”,这就是为什么它的工作机器上的服务器和其他机器不能正常工作。

更改localhost到机器的本地IP与服务器,像192.168.1.X

0

如果你试图调用服务的原产地之外,那么你应该在服务器端添加访问控制接头,其他人,而不是$ http.get你可以尝试$ http.jsonp(我没有尝试这种方法)。

我希望这会帮助你。