Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android $http请求状态为0,使用https_Android_Ios_Angularjs_Https_Ionic Framework - Fatal编程技术网

Android $http请求状态为0,使用https

Android $http请求状态为0,使用https,android,ios,angularjs,https,ionic-framework,Android,Ios,Angularjs,Https,Ionic Framework,情况: 我正在开发一款从API接收数据的Ionic应用程序 在此之前,API位于http://address上,一切正常 然后我们将API移动到https://并且它不再工作了。 或者,它仍然可以在浏览器中访问,但不能在手机或模拟器中访问 我不确定是什么问题。在控制台日志中,我看到请求的状态为0 它可能与白名单、标题或COR相关。我试过几种方法,但都不管用 白名单: 在此之前,config.xml中有一个白名单: <allow-navigation href="http://*/*" /&

情况:

我正在开发一款从API接收数据的Ionic应用程序

在此之前,API位于http://address上,一切正常

然后我们将API移动到https://并且它不再工作了。 或者,它仍然可以在浏览器中访问,但不能在手机或模拟器中访问

我不确定是什么问题。在控制台日志中,我看到请求的状态为0

它可能与白名单、标题或COR相关。我试过几种方法,但都不管用

白名单:

在此之前,config.xml中有一个白名单:

<allow-navigation href="http://*/*" /> 
API响应:

这是API响应的一个示例:

public function list_mobile_project()
{
    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); 

    // code

    echo json_encode( $project_list );
}
问题是:

如何让API也在HTTPS上工作


如果是与CORS相关的问题,如何在服务器端启用它?

当您从Http切换到Https时,问题主要是握手或证书符合性。请检查您的SSL证书是否在您的信任商店中可用,并检查您的android设备是否支持证书提供商。例如,最初的android平台不支持CA证书

可能下面的两个链接可以给你一些想法


我也面临过这样的问题。第一步是帮助你们解决问题

创建新的离子应用程序 午餐时使用手机或模拟器 修改您的WWW目录 再次编译您的应用程序,并使用手机或模拟器 问题是,请检查是否正确添加了ionic应用程序中的插件

通过添加插件,我的应用程序问题得到了解决


我认为,这些步骤将对您有所帮助。

我认为从设备CORS来看并不是问题。例如,见。从浏览器进行测试将产生CORS问题。 我认为问题在于你的白名单。 在config.xml中添加源:

这只是猜测

试试: 爱奥尼亚插件添加cordova插件白名单

在cordova 5.0.0中,他们重新引入了白名单插件。。 您需要添加此插件并允许您的后端URL

$http.get('/someUrl').success(successCallback);
如果您的应用程序是通过HTTPS提供服务的,那么您拨打的任何电话都是到同一主机/端口等,也可以通过HTTPS


如果您对请求使用完整URI,例如$http.get'http://foobar.com/somePath'然后您必须将URI更改为使用https

如果您在设备内运行APK文件的Android上看到此错误,则该错误与CORS无关。当您开发本机或混合/本机移动应用程序时,除非它们是渐进式web应用程序,否则CORS不是问题。在开发针对设备的移动应用程序时,在开发和进行初始调试时,请使用chrome并禁用CORS。您只需运行[安装文件夹]\chrome.exe-禁用web安全-用户数据目录

您的服务器是否支持CORS?此外,在浏览器中,https url的证书显示任何错误或警告?在浏览器中没有错误。关于服务器中的CORS支持,我不知道。@johnnyfittizio在浏览器中,您将能够无误地获得响应,您可能得到的地方是在AJS中使用它时,您将获得此CORS,因此请尝试在服务器端启用用于https的CORS。您获取API的平台是什么,如果是C,我可以帮助您启用it@johnnyfittizio另一点我想告诉你的是,每个响应,甚至错误500,都必须附加CORS头。如果服务器没有将CORS头附加到错误500响应,那么XHR对象将不会对其进行解析,因此XHR对象中不会包含任何响应正文、状态或任何其他响应数据。@johnnyfittizio经过一点研究后,如果$https返回状态0,则返回的不是角度端,这是浏览器方面的问题,也是解决方案。谢谢回复@amila。但是我不太明白你建议的从HTTPS获得APİ的解决方案是什么。这也是我的问题!
$http.get( 'https://MY_DOMAIN.com/mobile/list_mobile_project/' ,{},{"headers" : {"Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8" }})
     .success(function(data, status, headers, config) 
     {
             // code
     }).
     error(function(data, status, headers, config) 
     {
         console.log('Error with the API list_mobile_project');
         console.log(data);
         console.log(status);
         console.log(headers);
         console.log(config);
     });
public function list_mobile_project()
{
    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); 

    // code

    echo json_encode( $project_list );
}
<access origin="https://yourapi.com" />
$http.get('/someUrl').success(successCallback);