获取Phonegap应用程序以与Android中的Codeigniter服务器通信,访问控制允许源错误
我对使用phonegap、codeigniter和jQuery Mobile(我的第一个项目)非常陌生,目前已经在客户端使用jQuery Mobile创建了一个应用程序,在服务器端,我使用codeigniter框架创建了一个RESTful API。现在,当我在本地开发浏览器中的应用程序(尚未使用phonegap)时,它与API的通信很好,没有出现任何问题 我昨天在服务器上安装了Codeigniter API,现在遇到了两个问题:获取Phonegap应用程序以与Android中的Codeigniter服务器通信,访问控制允许源错误,codeigniter,jquery,jquery-mobile,cordova,Codeigniter,Jquery,Jquery Mobile,Cordova,我对使用phonegap、codeigniter和jQuery Mobile(我的第一个项目)非常陌生,目前已经在客户端使用jQuery Mobile创建了一个应用程序,在服务器端,我使用codeigniter框架创建了一个RESTful API。现在,当我在本地开发浏览器中的应用程序(尚未使用phonegap)时,它与API的通信很好,没有出现任何问题 我昨天在服务器上安装了Codeigniter API,现在遇到了两个问题: 使用jQuery Mobile构建的应用程序不断获得 以下错误:
- 使用jQuery Mobile构建的应用程序不断获得 以下错误: 访问控制不允许源本地主机允许源
$CI->output->set_header("Access-Control-Allow-Origin: *");
$CI->output->set_header("Access-Control-Expose-Headers: Access-Control-Allow-Origin");
$CI->output->set_status_header(200);
$CI->output->set_content_type('application/json');
现在我的问题是,我不完全确定哪一个是用来解决问题的,是否两者都需要实施,等等。如果它们需要解决,如何解决?有没有一个地方有很好的文件,可以教我如何处理这个问题,最好我想读一些地方,让我可以学习
- 第二个问题是当我将jQuery移动应用程序放入
phonegap并为Android构建它。应用程序无法获取
来自服务器的数据。这是因为十字架
上述域错误或此问题不同?我也做了一些
阅读本节以及我的Android config.xml I
添加了以下代码:
<access origin="http://10.0.2.2*" subdomains="true"/>
但我很抱歉,我仍然无法从服务器上提取任何内容。就像我说的,我是一个新手,但我真的很感激在这件事上能得到一些帮助。另外,我知道我没有发布代码,但根据评论,我将发布社区需要的代码来帮助解决这个问题,只需指定代码即可。提前感谢您的帮助 关于
访问控制允许起源的问题,我遇到了同样的错误,通过将这一行
放在项目根目录的索引.php
中解决了这个问题。这个问题没有得到100%的回答,但现在要感谢@Niloy Saha的帮助,要修复Codeigniter RESTful框架的访问控制允许原点错误,只需转到控制器文件夹中的控制器,并在顶部粘贴
header('Access-Control-Allow-Origin: *');
这样,您就可以从浏览器与服务器进行通信,并获得响应。经过几个小时的努力,我终于解决了我的问题。在res/xml文件夹中的Android项目中,有一个名为config.xml的文件。在该文件中,请确保具有以下代码:
<access origin="http://10.0.2.2*" subdomains="true"/>
并确保您具备以下条件:
<uses-permission android:name="android.permission.INTERNET" />
在您的AndroidManifest.xml中。对我来说,这似乎让一切都运转起来了我做了和你一样的事情,Zend FW在服务器上使用API和jQuery移动应用程序
我使用过JSONP,没有使用任何访问控制Allow Origin头
我的控制器中有一个方法:
function returnData($data) {
header('Content-type: text/javascript');
echo $_GET['callback']. '('. json_encode($data). ')';
die();
}
在API调用结束时,我使用它返回数据
正在jQuery中获取数据:
$.ajax({
dataType: "jsonp",
url: url,
data: {someparam: 'value'},
success: function(data) { /* ur data is here */ }
});