在PhoneGap中使AJAX工作

16 浏览
0 Comments

在PhoneGap中使AJAX工作

目前我需要使用PhoneGap调用另一个网页服务器上的PHP脚本来从我的数据库中检索数据。使用硬编码运行脚本可以正确地检索数据,但似乎Ajax调用要么没有返回任何内容,要么根本没有获取到数据。当前在控制台中我得到了“Origin null is not allowed by Access-Control-Allow-Origin.”的错误提示。

$(document).ready(function() {
    $('.check').click(function(){
        alert("Step1");
        var thisID = $(this).attr('id');
        alert(thisID);
        $.ajax({
            type: "POST",
            url: "http://csmaster.sxu.edu/group2/group2/CougarLunch/retrieveColumn.php",
            data: { ID: thisID},
            cache: false,
            async: true,
            datatype: "json",
            success: function(data) {
                console.log(data);
                alert(data.ItemID);
            }
        });
    });
});

如果相关的话,以下是PHP代码(虽然我对此表示怀疑):

if(isset($_POST['ID'])) {
    $ID = $_POST['ID'];
    function retrieve($ID) {
        $stmt = $mysqli->query("SELECT * FROM group2.menu WHERE ItemID = $ID");
        if($stmt->num_rows) {
            $row = $stmt->fetch_assoc();
            echo $row;
            print json_encode($row);
        }
    }
}

0
0 Comments

问题的出现原因是需要在AndroidManifest.xml文件中添加一行代码:<access origin="*" />。解决方法是根据PhoneGap文档中的指导,打开AndroidManifest.xml文件并添加上述代码。

获取AJAX在PhoneGap中的工作需要在AndroidManifest.xml中添加以下代码:<access origin="*" />。可以通过访问PhoneGap文档来获取更多信息。

0
0 Comments

原因:无法使用AJAX在PhoneGap中工作的问题可能是由于跨域访问的限制导致的。在默认情况下,PhoneGap应用程序无法直接访问其他域的资源,包括通过AJAX请求获取的数据。

解决方法:为了使AJAX在PhoneGap中正常工作,需要在PHP文件的顶部添加一行代码来允许跨域访问。代码如下:

header("Access-Control-Allow-Origin: *");

这行代码的作用是设置响应头中的"Access-Control-Allow-Origin"字段,将其值设置为"*",表示允许任何源(域)的请求访问该资源。这样,即使是从PhoneGap应用程序中发起的AJAX请求,也能够成功地访问到该PHP文件。

通过添加上述代码,可以解决AJAX在PhoneGap中无法工作的问题,使得应用程序能够正常获取跨域资源。

0