phpcms v9的api接口都存放到api文件夹下的,访问路径为http://www.XXX.com/api.php?op=count&.....,其他的op=count为你的具体的api文件,所以我根据这个规律开始开发!
(1)第一步:在网站的api文件夹下创建文件demo.php,代码:
(2)在请求端页面采用ajax发送请求
- defined('IN_PHPCMS') or exit('No permission resources.');
- if($_GET['catid'] && $_GET['num']) {
- $catid = intval($_GET['catid']); //用来接收请求的栏目id
- $num = intval($_GET['num']); //用来接收获取数量
- }
- $modelid =1; //设置你要调用栏目的模型id
- $db = pc_base::load_model('content_model');//引入content模型
- $db->set_model($modelid); //设置模型id,如果是其他非文章模型可以不需要设置这个
- $arr = $db->select(array('catid' => $catid),'*',$num); /调用所请求栏目id下的文章
- $r = json_encode($arr); //转换为json类型
- //jsonp请求的固定写法,可以解决跨域问题,引入callback回调函数
- echo $_GET['jsoncallback'] . "(".$r.")";
- ?>
ok大功告成!这样就可有跨域调用自己的网站里边的东西了!
- <script>
- $(function(){
- $.ajax({
- url:'http://www.XXX.com/api.php?op=demo&catid=28&num=10',
- dataType:'jsonp', //jsonp类型
- jsonp:"jsoncallback", //回调
- type:'get',
- success:function(data){
- var data=eval(data); //转化为json对象
- $.each(data, function(index, p){
- html = "
- "
;- html += "+ p.url +"' target='_blank'>"+ p.title +"";
- html += "
";- $("#test").append(html); //追加到id=test的div里边
- })
- },
- error : function() {
- console.log('fail');
- }
- });
- });
- </script>
效果浏览如图: