Android 使用cordova白名单时出现Ionic$http错误404
我的应用程序是一个简单的ionic应用程序,带有$hhtp.get请求,在我的Android手机上构建PhoneGap后无法工作。当我调试时,它会给我一个404错误。 当我在笔记本电脑上使用离子服务-p$PORT命令运行它时,它会给我一个CORS错误。 如果我激活CORS插件,它在我的笔记本电脑上的Chrome中确实可以工作。 我在c9(Cloud9)上编码,并在AdobePhoneGap上构建 我的请求Android 使用cordova白名单时出现Ionic$http错误404,android,cordova,xmlhttprequest,ionic,phonegap-build,Android,Cordova,Xmlhttprequest,Ionic,Phonegap Build,我的应用程序是一个简单的ionic应用程序,带有$hhtp.get请求,在我的Android手机上构建PhoneGap后无法工作。当我调试时,它会给我一个404错误。 当我在笔记本电脑上使用离子服务-p$PORT命令运行它时,它会给我一个CORS错误。 如果我激活CORS插件,它在我的笔记本电脑上的Chrome中确实可以工作。 我在c9(Cloud9)上编码,并在AdobePhoneGap上构建 我的请求 .controller('teamCtrl', function($scope, $htt
.controller('teamCtrl', function($scope, $http, $window) {
$http.get("http://google.com")
.success(function(response) {
$scope.categories = getArray(response);
var b =1;
})
.error(function(response) {
$window.alert("d'oh!");
});
})
index.html中的我的CSP:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
config.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.ionicframework.openorganix919048" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>OpenOrganix</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="http://*/*" />
<allow-intent href="http://*/*"/>
<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"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true"/>
</feature>
<platform name="android">
<icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/>
<icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/>
<icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/>
<icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/>
<icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/>
<splash src="resources/android/splash/drawable-land-ldpi-screen.png" density="land-ldpi"/>
<splash src="resources/android/splash/drawable-land-mdpi-screen.png" density="land-mdpi"/>
<splash src="resources/android/splash/drawable-land-hdpi-screen.png" density="land-hdpi"/>
<splash src="resources/android/splash/drawable-land-xhdpi-screen.png" density="land-xhdpi"/>
<splash src="resources/android/splash/drawable-land-xxhdpi-screen.png" density="land-xxhdpi"/>
<splash src="resources/android/splash/drawable-land-xxxhdpi-screen.png" density="land-xxxhdpi"/>
<splash src="resources/android/splash/drawable-port-ldpi-screen.png" density="port-ldpi"/>
<splash src="resources/android/splash/drawable-port-mdpi-screen.png" density="port-mdpi"/>
<splash src="resources/android/splash/drawable-port-hdpi-screen.png" density="port-hdpi"/>
<splash src="resources/android/splash/drawable-port-xhdpi-screen.png" density="port-xhdpi"/>
<splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/>
<splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/>
</platform>
</widget>
OpenOrganix
爱奥尼亚框架和科尔多瓦项目。
离子框架小组
已安装Cordova白名单插件
我尝试使用拦截器添加以下标题:
<Access-Control-Allow-Origin : *>
我到处都读到科尔多瓦白名单应该处理这个问题。。。请帮帮我 此解决方案仅适用于不在web浏览器上的移动设备。如果您正在使用移动设备的as,请检查并更新您的html代码
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
在config.xml文件中,代码必须如下所示<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.ionicframework.rangeslider745642" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>rangeslider</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="*"/>
<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"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true"/>
</feature>
<platform name="android">
<icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/>
<icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/>
<icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/>
<icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/>
<icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/>
<splash src="resources/android/splash/drawable-land-ldpi-screen.png" density="land-ldpi"/>
<splash src="resources/android/splash/drawable-land-mdpi-screen.png" density="land-mdpi"/>
<splash src="resources/android/splash/drawable-land-hdpi-screen.png" density="land-hdpi"/>
<splash src="resources/android/splash/drawable-land-xhdpi-screen.png" density="land-xhdpi"/>
<splash src="resources/android/splash/drawable-land-xxhdpi-screen.png" density="land-xxhdpi"/>
<splash src="resources/android/splash/drawable-land-xxxhdpi-screen.png" density="land-xxxhdpi"/>
<splash src="resources/android/splash/drawable-port-ldpi-screen.png" density="port-ldpi"/>
<splash src="resources/android/splash/drawable-port-mdpi-screen.png" density="port-mdpi"/>
<splash src="resources/android/splash/drawable-port-hdpi-screen.png" density="port-hdpi"/>
<splash src="resources/android/splash/drawable-port-xhdpi-screen.png" density="port-xhdpi"/>
<splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/>
<splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/>
</platform>
</widget>
范围滑块
爱奥尼亚框架和科尔多瓦项目。
离子框架小组
已解决!!问题是,通过ionic cli构建将所有内容链接在一起,而不会出现问题。但是,adobe构建的build.phonegap.com却没有。无论该插件是否已存在于项目中,都必须在配置文件中指定该插件。因此,在config.xml文件中添加:
,当然不要忘记添加xmlns:gap=”http://phonegap.com/ns/1.0“
首先通过键入cmd作为爱奥尼亚插件,检查您是否在项目中安装了cordova插件白名单ls@Marc,在您的config.xml中,您对白名单
插件参考有什么要求,这是插件列表…它是存在的:com.ionic.keyboard 1.0.4“keyboard”cordova插件控制台1.0.1“console”cordova插件设备1.0.1“device”cordova插件splashscreen 2.1.0“splashscreen”cordova插件白名单1.0.0“whitelist”
@andre3wap,thx,但我不确定您引用的意思。你能举个例子吗我在上面添加了整个config.xml。。。你用什么构建应用程序?我用爱奥尼亚框架@Marc AndréLanglaisIf构建应用程序,我将在github@Marc AndréLanglaisli中上传一个演示项目,就像我在使用PhoneGap构建的帖子中提到的那样,因为由于我的帐户空间限制,我无法在cloud 9上安装android SDK。当在我的本地机器上使用ionic编译时,该应用程序可以工作。。。因此,我认为我们可以在Adobe PhoneGap构建问题中记录这个问题。多谢阿尼尔。来澄清@Marc Andre所说的话。使用Phonegap Build,您可以通过将添加到config.xml
中来添加插件。这意味着您不必为每个插件添加多个插件,只需在config.xml
中添加一次插件,然后在config.xml中维护它。在线示例显示了这一点,尽管通常不阅读文档。
$scope.whitelist = function(){
console.log('method called');
$http.get("https://www.google.co.in/").then(function(data){
console.log(data);
$scope.categories = data.status;
console.log($scope.categories);
}, function(error){
console.log(error);
$window.alert("d' oh!");
});
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.ionicframework.rangeslider745642" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>rangeslider</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="*"/>
<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"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true"/>
</feature>
<platform name="android">
<icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/>
<icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/>
<icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/>
<icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/>
<icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/>
<splash src="resources/android/splash/drawable-land-ldpi-screen.png" density="land-ldpi"/>
<splash src="resources/android/splash/drawable-land-mdpi-screen.png" density="land-mdpi"/>
<splash src="resources/android/splash/drawable-land-hdpi-screen.png" density="land-hdpi"/>
<splash src="resources/android/splash/drawable-land-xhdpi-screen.png" density="land-xhdpi"/>
<splash src="resources/android/splash/drawable-land-xxhdpi-screen.png" density="land-xxhdpi"/>
<splash src="resources/android/splash/drawable-land-xxxhdpi-screen.png" density="land-xxxhdpi"/>
<splash src="resources/android/splash/drawable-port-ldpi-screen.png" density="port-ldpi"/>
<splash src="resources/android/splash/drawable-port-mdpi-screen.png" density="port-mdpi"/>
<splash src="resources/android/splash/drawable-port-hdpi-screen.png" density="port-hdpi"/>
<splash src="resources/android/splash/drawable-port-xhdpi-screen.png" density="port-xhdpi"/>
<splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/>
<splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/>
</platform>
</widget>