jsonp 跨域请求是指不同的域名网站之间进行数据请求与获取。由于网站安全机制,服务器一般都是设置了防跨站请求的,如果我们想跨域请求数据,所以 AJAX 请求会报错,最好的方法就是使用 jsonp 跨域请求。
在 JS 中使用 AJAX 代码来发送请求,注意 dataType:'jsonp'
var kehuurl='https://www.22vd.com/';
window.onload = function(){
$.ajax({
url:"dengluchuli.php?kehuurl="+kehuurl,
dataType:'jsonp',
success:function(result) { //成功的回调函数
if(!result){//回调函数里的参数是对象,可以取值,也可以判断
window.parent.parent.location.href="banquan/?furl="+kehuurl;
}
}
});
}
在处理数据的 PHP 文件 dengluchuli.php 中进行数据的处理,PHP 处理后的数据,最终是一个对象,最简单的数据方式:
<?php
exit($_GET['callback'].'({1: 张三,2: 李四})');
?>
如果想 PHP 读取数据库后,然后再获取数据,可以像下面这样写:
<?php
//获取参数
$kehuurl = $_GET["kehuurl"];
//连接数据库
define("DB_HOST","localhost");
define("DB_USER","admin");
define("DB_PWD","8prML");
define("DB_NAME","a564564");
$conn = @mysql_connect(DB_HOST,DB_USER,DB_PWD) or die("连接服务器出错:".mysql_error());
@mysql_select_db(DB_NAME) or die("连接数据库出错:".mysql_error());
@mysql_query('SET NAMES UTF8');
//从数据表中获取自己需要的数据
$result = mysql_query("select domain from wp_banquan where domain = '$kehuurl'");
if($result) {
//转成数组,且返回第一条数据,当不是一个对象时候退出
while($row = mysql_fetch_array($result))
{
$arr[] = $row['domain'];
}
//将数组转成PHP对象,就可以把数据库里的数据读取成对象了
exit($_GET['callback'].'('.json_encode($arr, JSON_FORCE_OBJECT).')');
}
else{
exit($_GET['callback'].'({0: null})');
}
mysql_close($conn);// 关闭数据库
?>
这样通过上面一个 JS 文件和 PHP 文件,就可以实现 jsonp 跨域请求,这样 JS 就可以访问 PHP 文件进行数据的读取和调用了。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!