博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨域,json与jsonp格式
阅读量:4439 次
发布时间:2019-06-07

本文共 1554 字,大约阅读时间需要 5 分钟。

         好久都没有写随笔了,最近大家都忙着考试要放假了,我也要忙一忙喽.....不过再忙我还是来啦  

        简单的说,json是一种轻量级的数据交换格式。平时我们使用ajax等使用的一种数据形式,那么今天就说说jsonp是个什么鬼。首先接触的时候也是一脸懵逼,都不清楚这是什么东西,上网搜啊查啊,最后才弄明白了。

        我们平时在写项目的时候前端后端交互数据用的是json,但是如果你想跨域进行数据访问,比如别的网站想看到你的数据或者你想看到别人的数据,不能用json格式进行传送数据,有才的人啊就发现还有jsonp。老实说,jsonp就是满足你跨域读取数据的一种方法,下面就直接看代码吧。

 

public function actionIndex(){        header('Content-type: application/json');        //获取回调函数名        $jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);//把预定义的字符转换为 HTML 实体。         $resourceid = $_GET["resource_id"];        $resourceid = base64_decode($resourceid);        $resourceid = SafetyHelper::KillDangerCode($resourceid);        if(empty($resourceid) || is_numeric($resourceid)==false){            $json_data= json_encode(array("code"=>300,"msg"=>"素材ID错误","data"=>array()));            echo $jsoncallback . "(" . $json_data . ")";            die();        }        $resource = Resource::model()->find("id=".$resourceid);        if(!empty($resource)){            $arr["code"]=200;            $arr["msg"]="获取成功";            $arr["data"]=array("title"=>$resource->title,"url"=>$resource->filepath,"hits"=>$resource->hits);        }else{            $arr["code"]=404;            $arr["msg"]="资源不存在";            $arr["data"]="";        }        $json_data=json_encode($arr);        //输出jsonp格式的数据        echo $jsoncallback . "(" . $json_data . ")";    }

     可以看的出来,比平时我们用json的时候多了两行代码,就是要用这个回调函数来实现输出的格式变为jsonp。这是在PHP页面的代码,另外需要在HTML页面写一个js来调用得到jsonp。

          
获取jsonp对象

 

转载于:https://www.cnblogs.com/xiaonannan/p/7099793.html

你可能感兴趣的文章
并发、串行、并行及多道技术原理
查看>>
hashlib、pickle、hmac、logging模块使用
查看>>
javascript常用知识点总结
查看>>
2019秋招复习笔记--数据库基本操作
查看>>
2019秋招复习笔试--手写代码
查看>>
2019秋招复习笔记--智力题
查看>>
MySQL学习笔记
查看>>
2019秋招面试复习 项目重点提问
查看>>
面试题
查看>>
DS博客作业08-课程总结
查看>>
利用Python爬虫刷店铺微博等访问量最简单有效教程
查看>>
浅谈软件测试与墨菲定律
查看>>
文件安全复制之 FastCopy
查看>>
强烈推荐美文之《从此刻起,我要》
查看>>
MYSQL中数据类型介绍
查看>>
评估软件上线标准
查看>>
敏捷开发流程
查看>>
APP兼容性测试(三)测试方案设计
查看>>
React的性能优化 - 代码拆分之lazy的使用方法
查看>>
在canvas中使用其他HTML元素
查看>>