Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.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/6/codeigniter/3.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 phonegap中使用jquery ajax从服务器获取数据_Android_Codeigniter_Rest_Jquery_Cordova - Fatal编程技术网

在android phonegap中使用jquery ajax从服务器获取数据

在android phonegap中使用jquery ajax从服务器获取数据,android,codeigniter,rest,jquery,cordova,Android,Codeigniter,Rest,Jquery,Cordova,嗨,我正在为android开发一个应用程序(使用phonegap、html5和javascript),它可以连接到远程mysql数据库。 我创建了一个RESTful(codeigniter)web服务来访问mysql数据库,然后Android应用程序可以调用web服务来获取数据或将数据发布到db,使用XML或JSON作为数据格式 在使用jqueryajax的web浏览器中,我成功地得到了结果,但在android应用程序中没有得到响应 jQuery.ajax({ url : 'http://10.

嗨,我正在为android开发一个应用程序(使用phonegap、html5和javascript),它可以连接到远程mysql数据库。 我创建了一个RESTful(codeigniter)web服务来访问mysql数据库,然后Android应用程序可以调用web服务来获取数据或将数据发布到db,使用XML或JSON作为数据格式

在使用jqueryajax的web浏览器中,我成功地得到了结果,但在android应用程序中没有得到响应

jQuery.ajax({
url : 'http://10.10.1.129/index.php/apiauth/auth/?'+jQuery("#form-login").serialize(),
async :true,
cache :false,
/*crossDomain : true,*/
dataType : 'jsonp',
success:function(data){
    alert(data);
    }  
});
在服务器中:

require APPPATH.'/libraries/REST_Controller.php';
    class Apiauth extends REST_Controller
    {
        function auth_get()
        {
            $this->load->model('mauth');
            $username   = $this->input->get('username') ? $this->input->get('username') : $this->get('username');
            $password   = $this->input->get('password') ? $this->input->get('password') : $this->get('password');
            $auth       = $this->mauth->getUserLogin('*',$username,$password);
            $row        = $auth->row();
            if($row){
                $data   = array('username'=>$row->username, 'fullname'=>$row->fullname,'error'=>FALSE);
            }else{
                $data   = array('error'=>true);
            }
            $this->response($data, 200);
        }

您是否添加了具有ajax请求中指定的ip地址的访问源?此文件位于应用程序目录中,默认情况下允许使用/res/xml/config.xml localhost,但使用时需要添加其他主机。因此,您的config.xml应该如下所示

<?xml version="1.0" encoding="utf-8"?>
<!--
       Licensed to the Apache Software Foundation (ASF) under one
       or more contributor license agreements.  See the NOTICE file
       distributed with this work for additional information
       regarding copyright ownership.  The ASF licenses this file
       to you under the Apache License, Version 2.0 (the
       "License"); you may not use this file except in compliance
       with the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

       Unless required by applicable law or agreed to in writing,
       software distributed under the License is distributed on an
       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
       KIND, either express or implied.  See the License for the
       specific language governing permissions and limitations
       under the License.
-->
<cordova>
    <!--
    access elements control the Android whitelist.
    Domains are assumed blocked unless set otherwise
     -->

    <access origin="http://127.0.0.1*"/> <!-- allow local pages -->
    <access origin="http://10.10.1.129*"/> <!-- allow requests from your server -->


    <!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
    <!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
    <access origin=".*"/>

    <log level="DEBUG"/>
    <preference name="useBrowserHistory" value="false" />
<plugins>
    <plugin name="App" value="org.apache.cordova.App"/>
    <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
    <plugin name="Device" value="org.apache.cordova.Device"/>
    <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
    <plugin name="Compass" value="org.apache.cordova.CompassListener"/>
    <plugin name="Media" value="org.apache.cordova.AudioHandler"/>
    <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
    <plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
    <plugin name="File" value="org.apache.cordova.FileUtils"/>
    <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
    <plugin name="Notification" value="org.apache.cordova.Notification"/>
    <plugin name="Storage" value="org.apache.cordova.Storage"/>
    <plugin name="Temperature" value="org.apache.cordova.TempListener"/>
    <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
    <plugin name="Capture" value="org.apache.cordova.Capture"/>
    <plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
    <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
</plugins>
</cordova>

根本不起作用,我们必须放入在ajax请求期间调用的特定url


这很有效。

我在这里根本看不到任何Android代码…?很抱歉,我使用phonegap、html5和javascript开发Android应用程序。phonegap似乎在2.3.0版之后的某个时候才开始关注此设置。我有josh指定的条目,但在域名中有拼写错误。在Cordova/Phonegap 2.3.0下,所有这些都运行良好。当我升级到V2.7.0时,AJAX会调用success函数,但是响应总是空的。当我纠正拼写错误时,宾果游戏又成功了。我发现subdomains=“true”元素特别有用,因为我们必须按照评论中的建议,允许域名包含或不包含“www”。