善恶资源网专注优秀技术教程分享网-傅汉松!

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

傅汉松 技术教程

汉松出品|资源介绍

傅汉松本次为大家分享的是jsonp跨域:实现JS跨站请求PHP数据

傅汉松

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

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

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

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


标签: 暂无标签

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:321976193@qq.com

同类推荐
评论列表

技术教程 jsonp跨域:实现JS跨站请求PHP数据
jsonp跨域请求是指不同的域名网站之间进行数据请求与获取。由于网站安全机制,服务器一般都是设置了防跨站请求的,如果我们想跨域请求数据,所以AJAX请求会报错,...
扫描二维码阅读原文
QQ娱乐网 January, 01
生成社交图 ×
    79.16ms