无法使用jquery从localhost访问数据

时间:2014-07-24 08:35:16

标签: php jquery localhost

我正在使用JQuery访问localhost的WWW文件夹中的某些数据和PHP文件。我正在向php文件发送id,我想要一些有关该id的详细信息。

当我在Intel XDK中使用此代码时。然后它显示完美的内部移动视图,但在浏览器中它不起作用。

任何类型的帮助都将受到赞赏。

的index.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>jQuery PHP Json Response</title>
    <style type="text/css">
    div
    {
    text-align:center;
    padding:10px;
    }

    #msg {
    width: 500px;
    margin: 0px auto;
    }
    .members {
    width: 500px ;
    background-color: beige;
    }
    </style>
    </head>
    <body>
    <div id="msg">
    <table id="userdata" border="1">
    <thead>
    <th>Id</th>
    <th>Latitude</th>
    <th>Longitude</th>

    </thead>
    <tbody></tbody>
    </table>
    </div>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
    </script>
    <script type="text/javascript">

    $(document).ready(function(){
        var result = prompt("Enter a address");
        $.post("http://localhost/getuser.php", { str : result }, function(json) {
            alert(json);

            $.each($.parseJSON(json), function(idx, obj) {
        alert(obj.id);

        var tblRow =
                    "<tr>"
                +"<td>"+obj.id+"</td>"
                +"<td>"+obj.lat+"</td>"
                +"<td>"+obj.lng+"</td>"

                +"</tr>" ;
                $("#userdata tbody").append(tblRow);

            });

    });


    });

    </script>
    </body>
    </html>

并且,在WWW文件夹中getuser.php

<?php
    $host="localhost"; //replace with your hostname 
    $username="root"; //replace with your username 
    $password="auroin"; //replace with your password 
    $db_name="map"; //replace with your database 
//  $str = $_REQUEST['str'];
    $str = $_POST['str'];
    //$str = 1;
    $con=mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    $sql = "select * from pet where id='".$str."'"; //replace emp_info with your table name 
    $result = mysql_query($sql);
    $json = array();

    while($row=mysql_fetch_object($result)){
    $json[] = $row;

    }
    mysql_close($db_name);
    //echo '{"members":'.json_encode($json).'}';
    echo json_encode($json);

    // please refer to our PHP JSON encode function tutorial for learning json_encode function in detail 
?>

编辑: -

我的控制台出现了一些错误......

未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本进行渲染。必须在文档或传输协议中声明页面的字符编码。 index.html

阻止跨源请求:同源策略禁止在getuser.php读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决。 getuser.php

1 个答案:

答案 0 :(得分:0)

我建议您在浏览器中禁用同源策略,以便从本地文件测试跨域AJAX请求。

例如,使用Windows上的Google Chrome浏览器,您可以通过使用以下命令启动chrome来禁用此策略:

C:\ Users \ YOUR_USER \ AppData \ Local \ Google \ Chrome \ Application \ chrome.exe --allow-file-access-from-files --disable-web-security

这两个标志一起允许您测试来自本地文件的跨域ajax请求。