情况:
我正在开发一个Ionic应用程序,该应用程序从API接收数据。
之前,API在http://地址上,一切都很正常。
然后我们将API移动到https://,但它不再工作了。或者说,在浏览器中访问仍然可以工作,但在手机(或模拟器)上无法工作。
我不确定问题可能是什么。在控制台日志中,我看到请求的状态为0。
这可能与白名单、头信息或CORS有关。我尝试了几种方法,但没有一种可行。
白名单:
在config.xml中之前有这个白名单:
<allow-navigation href="http://*/*" />
我尝试以几种方式修改它,但这并没有解决问题。例如,我尝试了:
<allow-navigation href="https://*/*" />
和
<allow-navigation href="*" />
API请求:
这是一个API请求的示例:
$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响应:
这是一个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相关的问题,我该如何在服务器端启用它?