设备上的IONIC2,Angular 2 Http请求错误 - 访问file://而不是http://

时间:2016-04-20 15:10:38

标签: cordova cordova-plugins ionic2

我在IONIC 2 App中对我的服务器的请求有问题。

在ionic.config.json中,我设置了代理(我的其余API可以直接从http://SERVER_ADDRESS.pl获得):

"proxies": [{
    "path": "/rest",
    "proxyUrl": "http://SERVER_ADDRESS.pl"
}]

在我的ts文件中,我有:

this.http.get(`/rest/getmenu`)
.map(res => res.json())
.subscribe(res => {
        this.menus = res;
        console.log(this.menus);
    },
    err => {
        console.log(err);
        this.error = err;
    }
);

在config.xml中我添加了:

<allow-navigation href="*" />

当我从“离子发球”开始时,一切都还可以,但是当我在emualtor上运行时,我有错误。当我在Chrome上调试时,我看到错误:

无法加载资源:net :: ERR_FILE_NOT_FOUND file:/// rest / getmenu

如何解决?

我已经安装了cordova-plugin-whitelist(cordova-plugin-whitelist 1.2.3-dev“Whitelist”)。 我的config.xml:

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>V2 Test</name>
    <description>An Ionic Framework and Cordova project.</description>
    <author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-navigation href="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
    <preference name="webviewbounce" value="false" />
    <preference name="UIWebViewBounce" value="false" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="android-minSdkVersion" value="16" />
    <preference name="BackupWebStorage" value="none" />
    <feature name="StatusBar">
        <param name="ios-package" onload="true" value="CDVStatusBar" />
    </feature>
</widget>

离子信息:

Cordova CLI: 4.3.1
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.4
Ionic CLI Version: 2.0.0-beta.25
Ionic App Lib Version: 2.0.0-beta.15
OS: Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS 
Node Version: v4.0.0

1 个答案:

答案 0 :(得分:2)

代理设置仅用于在浏览器中进行测试http://ionicframework.com/docs/cli/test.html

由于ionic serve启动了Web服务器,因此它也可以创建代理。部署到手机时,没有Web服务器,只有文件夹中的文件,因此没有代理。您需要直接点击URL或运行您的应用可以访问的自己的代理服务器。