首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >包含https的$http请求状态0

包含https的$http请求状态0
EN

Stack Overflow用户
提问于 2016-02-02 22:40:02
回答 6查看 2.9K关注 0票数 16

情境:

我正在开发一个从API接收数据的离子应用程序。

以前,API在http:// address上,一切都运行正常。

然后我们将API移到https://,但它不再工作。或者,它仍然可以在浏览器中访问它,但不能在电话(或模拟器)中访问它。

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

可能与白名单相关,也可能与headers相关,也可能与CORS相关。我尝试了几种方法,但都不起作用。

白名单:

在config.xml之前,有这样一个白名单:

代码语言:javascript
复制
<allow-navigation href="http://*/*" /> 

我试着用几种方法修改它,但都没有解决这个问题。例如,我尝试过:

代码语言:javascript
复制
<allow-navigation href="https://*/*" /> 

代码语言:javascript
复制
<allow-navigation href="*" />

接口请求:

以下是API请求的一个示例:

代码语言:javascript
复制
$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);
     });

接口返回:

以下是API响应的示例:

代码语言:javascript
复制
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相关问题,如何在服务器端开启?

EN

回答 6

Stack Overflow用户

发布于 2016-02-08 13:00:13

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

也许下面的两个链接可以给你一些想法。

http://nelenkov.blogspot.in/2011/12/using-custom-certificate-trust-store-on.html

http://www.codeproject.com/Articles/826045/Android-security-Implementation-of-Self-signed-SSL

票数 2
EN

Stack Overflow用户

发布于 2016-02-11 10:21:40

我认为从设备CORS不是问题。请参见实例this。从你的浏览器测试它产生一个CORS问题。我想问题出在你的白名单上。在你的config.xml add (来源:this)中:

代码语言:javascript
复制
<access origin="https://yourapi.com" />

这只是一个猜测!

票数 0
EN

Stack Overflow用户

发布于 2016-02-11 22:32:33

尝试使用:ionic plugin add cordova-plugin-whitelist

https://forum.ionicframework.com/t/update-to-cordova-5-0-0-make-http-call-error/22703

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35156370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档