今天学习的运用php实现 ajax的跨域通讯
首先ajax的通信方式只能实现本地文件之间的数据通信,如果要实现同其他主机的通信的话需要用到file_get_content(),这个函数;
实现这个功能我们至少需要三个文件,分别为 Clien.html(客户端),server.php(本地后台),server.php(其他主机的服务器文件);具体的实现步骤和部分代码如下:首先在Clien.html用ajax向本地server.php文件发送用户请求代码如下:
<body onload="aaa()">
</body>
<script>
function aaa() {
$.ajax({
type: "post",
url: "http.php",
data: {
"url": "http://192.168.4.101:90/PHPStudy4/server.php",
"username": "admin",
"password": "admin"
},
success: function (dat) {
// var rel = eval("(" + dat + ")");
// console.log(rel);
console.log(dat);
}
})
}
</script>
在本地server.php文件中对请求就处理将发送过来的请求采用http协议发送到的别人的主机中;代码如下:
header("Content-type:text/html;charset=utf-8"); if($_SERVER["REQUEST_METHOD"]=="POST"){ if(isset($_POST["url"]) && isset($_POST["username"]) && isset($_POST["password"])){ echo PostMessage($_POST["url"],array("username"=>$_POST["username"],"password"=>$_POST["password"])); }else{ echo "数据不完整"; } }else{ echo json_encode(array("CW"=>"error")); } function PostMessage($url,$data){ $query=http_build_query($data); $option=array( "http"=>array( "header"=>"Content-Type:application/x-www-form-urlencoded\r\n". "Content-Length:".strlen($query)."\r\n". "User-Agent:MyAgent/1.0\r\n", "method"=>"POST", "content"=>$query ) ); $context=stream_context_create($option); $result=file_get_contents($url,false,$context,-1,40000); return $result; }
然后别的主机中的Server.php根据发送过来的请求返回相应的数据:

浙公网安备 33010602011771号