如何在phonegap中的localhost上加载php文件

时间:2012-08-17 12:42:56

标签: php html5 cordova android-emulator phonegap-plugins

您好我是phonegap的新手。我正在创建一个带有登录验证的html文件。我在php文件中的验证码。我在Android模拟器上运行。那个时候这个php文件无法在模拟器上运行,所以我该怎么办?

<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>
        </title>

        <link rel="stylesheet" href="jquery.mobile-1.1.1.min.css" />

        <link rel="stylesheet" href="my.css" />
        <style>
            /* App custom styles */
        </style>
        <script src="jquery.min.js"> </script>
        <script src="jquery.mobile-1.1.1.min.js"> </script>
        <script src="my.js">
        </script>
    </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-role="content" style="padding: 15px">
                <div data-role="fieldcontain">
                <div id="message" style="display: none;"></div>
                    <fieldset data-role="controlgroup">
                        <label for="textinput1">
                            Email:
                        </label>
                        <input name="" id="textinput1" placeholder="" value="" type="text" />
                    </fieldset>
                </div>

<script type="text/javascript">
$(document).ready(function(){
    $('#btnValidate').click(function() {

        $('#message').hide(500);

        $.ajax({
            type : 'POST',
            url : 'http://localhost/JQuery/php',
            dataType : 'json',
            data: {
                email : $('#textinput1').val()
            },
            success : function(data){
                $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
                    .text(data.msg).show(500);
            },
            error : function(XMLHttpRequest, textStatus, errorThrown) {

                $('#message').removeClass().addClass('error')
                    .text('There was an error.').show(500);
            }
        });

        return false;
    });
});
</script>

<a data-role="button" data-inline="true"  id="btnValidate" data-transition="fade" href="#page1">Submit</a>
            </div>
        </div>
        <script>
            //App custom javascript
        </script>
    </body>
</html>

这是我的HTML代码。在哪里我不正确所以请高高在上。

3 个答案:

答案 0 :(得分:2)

在Android模拟器中运行PhoneGap应用程序时,localhost和127.0.0.1会引用the Android emulator loopback interface。您可以使用IP地址10.0.2.2

访问开发计算机
$.ajax({
    type : 'POST',
    url : 'http://10.0.2.2/JQuery/php',
    dataType : 'json',
    data: {
        email : $('#textinput1').val()
    }...

答案 1 :(得分:1)

您需要使用系统的IP地址(例如192.168.1.2)或设置虚拟主机来访问您的php文件。 Android模拟器作为单独的虚拟机加载,因此您无法访问php文件的localhost。

答案 2 :(得分:0)

为您的系统分配IP并使用该IP地址http:// 183.82.166.97:9696/index.php

我在httpd.conf中配置了这样的

听9696     DocumentRoot“D:/ PHPworkspace / HWsite”     DirectoryIndex index.php          AllowOverride All     全部允许     
         AllowOverride All     全部允许