如何使用javascript

时间:2015-05-28 10:25:09

标签: javascript php ajax

我正在尝试使用jquery的ajax方法连接到位于http://127.0.0.1:8080/projects/mssql/index.php的php文件,但我无法得到响应。我做错了什么?

我正在做所有这些本地 - 我是否必须更改php.ini文件中的任何设置或代码中是否有错误?请帮忙

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        alert("hoi");
        $.ajax({url: "http://127.0.0.1:8080/projects/mssql/index.php", async: false, success: function(result){
            $("div").html(result);
        }});
    });
});
</script>
</head>
<body>

<div><h2>Let AJAX change this text</h2></div>

<button>Change Content</button>

</body>
</html>

这是php文件。 php文件本身有效,因为当我在浏览器中输入它的位置时,我确实得到了预期的响应

<?php
    $serverName = "PAUL\SQLSERVER";
    $connectionInfo=$arrayName = array('Database' => "TestDatabase" );

    $conn = sqlsrv_connect($serverName,$connectionInfo);
    if($conn){
        echo "connection established";
    }
    else{
        echo "connection failure";
        die(print_r(sqlsrv_errors(),TRUE));
    }

    $sql="select custID from customer";
    $stmt = sqlsrv_query($conn,$sql);
    if($stmt == false){
        echo "Error retriving data";
        die(print_r(sqlsrv_errors(),TRUE));
    }
    echo "<br>";
    $row = sqlsrv_fetch_array($stmt);
    echo $row["custID"];
?>

1 个答案:

答案 0 :(得分:1)

由于跨域原始政策,您无法拨打此电话。请查看以下链接以了解更多信息。

http://en.wikipedia.org/wiki/Same-origin_policy

您需要在同一个域上进行AJAX调用。但在您的情况下,您正在通过浏览直接HTML文件进行呼叫。

从该页面添加一些注释:

  

在计算中,同源策略是一个重要的概念   Web应用程序安全模型。根据该政策,Web浏览器   允许第一个网页中包含的脚本访问a中的数据   第二个网页,但仅当两个网页具有相同的来源时。一个   origin被定义为URI方案,主机名和端口的组合   1号]此策略可防止一页上的恶意脚本   通过它访问另一个网页上的敏感数据   页面的文档对象模型。

作为解决方案,您可以使用 jsonp 进行跨源AJAX调用:https://learn.jquery.com/ajax/working-with-jsonp/