JQuery/PHP

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

阿里云

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

第一步

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

也想出现在这里?联系我们
创客主机
  1. var kehuurl='https://www.22vd.com/';
  2. window.onload = function(){
  3. $.ajax({
  4. url:"dengluchuli.php?kehuurl="+kehuurl,
  5. dataType:'jsonp',
  6. success:function(result) { //成功的回调函数
  7. if(!result){//回调函数里的参数是对象,可以取值,也可以判断
  8. window.parent.parent.location.href="banquan/?furl="+kehuurl;
  9. }
  10. }
  11. });
  12. }

第二步

在处理数据的 PHP 文件 dengluchuli.php 中进行数据的处理,PHP 处理后的数据,最终是一个对象,最简单的数据方式:

  1. <?php
  2. exit($_GET['callback'].'({1: 张三,2: 李四})');
  3. ?>

如果想 PHP 读取数据库后,然后再获取数据,可以像下面这样写:

  1. <?php
  2. //获取参数
  3. $kehuurl = $_GET["kehuurl"];
  4. //连接数据库
  5. define("DB_HOST","localhost");
  6. define("DB_USER","admin");
  7. define("DB_PWD","8prML");
  8. define("DB_NAME","a564564");
  9. $conn = @mysql_connect(DB_HOST,DB_USER,DB_PWD) or die("连接服务器出错:".mysql_error());
  10. @mysql_select_db(DB_NAME) or die("连接数据库出错:".mysql_error());
  11. @mysql_query('SET NAMES UTF8');
  12.  
  13. //从数据表中获取自己需要的数据
  14. $result = mysql_query("select domain from wp_banquan where domain = '$kehuurl'");
  15. if($result) {
  16.  
  17. //转成数组,且返回第一条数据,当不是一个对象时候退出
  18. while($row = mysql_fetch_array($result))
  19. {
  20. $arr[] = $row['domain'];
  21. }
  22.  
  23. //将数组转成PHP对象,就可以把数据库里的数据读取成对象了
  24. exit($_GET['callback'].'('.json_encode($arr, JSON_FORCE_OBJECT).')');
  25. }
  26. else{
  27. exit($_GET['callback'].'({0: null})');
  28. }
  29.  
  30. mysql_close($conn);// 关闭数据库
  31. ?>

这样通过上面一个 JS 文件和 PHP 文件,就可以实现 jsonp 跨域请求,这样 JS 就可以访问 PHP 文件进行数据的读取和调用了。

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

已有 195 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!