php - 如何使用 PhoneGap(Android 应用程序)实时连接到 Web 服务器上的 PHP 文件?

标签 php android ajax cordova phonegap-plugins

下面给出的代码使用本地主机上的 wamp 服务器工作正常。它正在调用一个连接到 MySql 数据库并返回数据的 php 文件。

但是我正在尝试使用 PhoneGap 构建一个移动应用程序。下面的代码在一个 HTML 文件中。我的问题是,一旦我将 html 文件上传到 phonegap 并生成 .apk 文件,我的 html 文件将如何使用 ajax 与服务器建立连接。因为下面的代码只是调用了 getbustime.php 文件,没有任何网络服务器参数。

我已经使用 HTML、jQueryMobile、Ajax 在 phonegap 中开发了我的应用程序,现在愿意上传帮助吗?

  function getBusTime(){



                         if (window.XMLHttpRequest)
                        {// code for IE7+, Firefox, Chrome, Opera, Safari
                        xmlhttp=new XMLHttpRequest();
                        }
                      else
                        {// code for IE6, IE5
                        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                        }
                      xmlhttp.onreadystatechange=function()
                        {
                        if (xmlhttp.readyState==4 && xmlhttp.status==200)
                          {

                         document.getElementById("resultLogBus").innerHTML=xmlhttp.responseText;

                    // $('#resultLogBus').html(xmlhttp.responseText).selectmenu( "refresh");
                         }
                        }

                      xmlhttp.open("GET","getbustime.php?direction="+direction+"&busnum="+busnum+"&dayofweek="+dayofweek+"&stopname="+stopname+"&starttime="+starttime+"&endtime="+endtime,true);
                      xmlhttp.send();



    }//End of function getBusTime


</script>

最佳答案

基本上,您需要在 ajax 调用中设置 server/php 文件的完整路径,如下所示:

xmlhttp.open("GET","http://<YOUR_SERVER_NAME>/getbustime.php?direction="+direction+"&busnum="+busnum+"&dayofweek="+dayofweek+"&stopname="+stopname+"&starttime="+starttime+"&endtime="+endtime,true);


根据您的情况,您可能还需要做的其他几件事是:

  1. 在 phonegap config.xml 中设置这个标签:

    <access origin="*" />

  2. 我在 Chrome 中进行所有 phonegap 开发,它强制执行跨源安全性。一旦您尝试针对服务器的真实地址(而不是本地主机)进行测试,Chrome 将阻止它,除非服务器设置为 CORS。在您的服务器上启用此功能以在 PHP 中进行测试的简单方法是:

    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Headers: X-Requested-With, Content-Type');

关于php - 如何使用 PhoneGap(Android 应用程序)实时连接到 Web 服务器上的 PHP 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22124308/

相关文章:

android - 在 cordova 插件中获取上下文

android - NumberPicker 未显示在 AlertDialog 中

javascript - 什么是最好的 1-1 聊天模式? (AJAX/CI/JQ)

php - 从 php 文件在 js 文件中定义变量

javascript - Chart.JS TypeError : this. 比例未定义

php - 从 A 类的 B 类(扩展 A 类)调用静态方法

android - 是否可以在我自己的应用程序中使用私有(private)三星框架?

ajax - 调度执行 AJAX 请求的操作时出现无限循环 - ReactJS、Redux、Redux-saga

javascript - 使用纯 Javascript 通过 AJAX 发送 WordPress 对象

javascript - 如何防止我的超链接刷新页面?