学做网站培训课程介绍

当前位置:

jsonp跨域:实现JS跨站请求PHP数据

jsonp跨域请求是指不同的域名网站之间进行数据请求与获取。由于网站安全机制,服务器一般都是设置了防跨站请求的,如果我们想跨域请求数据,所以AJAX请求会报错,最好的方法就是使用jsonp跨域请求。
jsonp跨域

下面学做网站论坛介绍一下jsonp跨域请求数据的方法。

第一步:在JS代码中使用AJAX代码来发送请求,注意dataType:'jsonp'。


var kehuurl='https://www.xuewangzhan.net/';
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文件进行数据的读取和调用了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关教程

  • 如果我们的网站有港澳台的用户,那么网站特别好是能支持文字简繁互转,这样做能方便不同用户更好的阅读网站内容。那么如何在自己做网站时,实
  • 我们都知道在做网站时,加载的文件越少速度就会越快,包括CSS、JS、图片、数据库等等,特别是门户网站建设更是如此。要减少这些文件的载入,特别
  • 我们在有些网站上看到会在网站的某个位置显示一个动态变化的时钟,它是一秒秒的变化。对于这种效果,我们自己做网站时也可以制作出来,只需要通过JS就
  • 国内特别常用的PHP+MySql免费CMS系统大全:0. WordPress - 是一款基于PHP和MySQL的Blog软件,但是它也可以当作简单的cms系统来用。通过它可以快速
  • 什么本地环境?就是在你个人的电脑上安装一个环境,模拟出你的虚拟空间一样的环境。这样还没有购买域名和网站空间的朋友,就可以先在本地搭建好word
  • 高仿phpcms门户网站主题 图文教程 (19201 次浏览)
    这款wordpress cms主题是高仿phpcms,信任很多人都用过phpcms,如今运用wordpress也能够完成这样的作用。本站发布过很多高仿wordpress主题,例如高仿b