Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript连接到另一台服务器上的php_Javascript_Php_Ajax - Fatal编程技术网

如何使用javascript连接到另一台服务器上的php

如何使用javascript连接到另一台服务器上的php,javascript,php,ajax,Javascript,Php,Ajax,我试图用jquery的ajax方法连接到位于的php文件,但无法得到响应。我做错了什么 我正在做所有这些本地操作-我是否必须更改php.ini文件中的任何设置,或者代码中是否存在错误?请帮忙 <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <s

我试图用jquery的ajax方法连接到位于的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>

$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
警报(“hoi”);
$.ajax({url:http://127.0.0.1:8080/projects/mssql/index.php,异步:false,成功:函数(结果){
$(“div”).html(结果);
}});
});
});
让AJAX更改此文本
更改内容
这是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"];
?>

由于跨域来源策略,您无法进行此类呼叫。请查看下面的链接,了解更多信息

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

添加该页中的一些注释:

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


作为一种解决方案,您可以使用jsonp进行跨源AJAX调用:

如果发布PHP文件,将非常有用。您是否在另一个端口的同一台本地计算机上运行另一台服务器?PHP文件应回显响应。并检查响应的数据类型('json'等)尝试将其添加到您的服务器config/.htaccess
http://enable-cors.org/server_apache.html
假设您在端口8080的服务器上运行apachephp,但我刚刚在浏览器中打开的html文件,因为我在本地运行所有内容,而且我不担心安全性,是否有某种方法可以使ajax成为可能calls@PaulBoon对正如在回答中提到的,您可以使用jsonp。p、 我已经编辑了我的答案。我将代码更改为$(“按钮”)。单击(function(){alert(“hoi”);$.ajax({url:,async:false,jsonp:“callback”,dataType:“jsonp”,data:format:“json”,success:function(result){alert(result);}}});但是我仍然没有得到结果,而且由于某种原因,警报也不再发出了。我已经阅读了关于json p的内容,在维基百科上,它说我只能发出get请求。是否有其他方法可以进行跨域ajax调用