使用JSON实现数据的跨域传输的php代码


Posted in PHP onDecember 20, 2011

后台profile.php代码:

<?php 
$arr = array( 
'firstname' => iconv('gb2312', 'utf-8', '非诚'), 
'lastname' => iconv('gb2312', 'utf-8', '勿扰'), 
'contact' => array( 
'email' =>'fcwr@3water.com', 
'website' =>'https://3water.com', 
) 
); 
//将一个数组JSON 
$json_string = json_encode($arr); 
//此处注意,双引号能对里面的变量当变量进行处理,单引号则不会 
echo "getProfile($json_string)"; 
?>

需要指出的是,在非UTF-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果你使用 gb2312编写PHP代码,那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode。
前台index.html代码:
<script type="text/javascript"> 
function getProfile(str) { 
var arr = str; 
document.getElementById("firstname").innerHTML = arr.firstname; 
} 
</script> 
<body> 
<div id="firstname"></div> 
</body> 
<!-- 使用JSON实现跨域的数据调用,此处如将“profile.php”改为“http://另外一个域名/profile.php”就更能看出跨域了--> 
<script type="text/javascript" src="profile.php"></script>

将JSON格式的数据直接赋值给javascript中的变量,就变成数组了,接下来操作起来就会非常的方便,此处如果使用XML做为数据传输,后续操作就不方便喽。
很显然,当index.html调用profile.php时,JSON字符串生成,并作为参数传入getProfile,然后将昵称插入到div 中,这样一次跨域数据交互就完成了
调用index.html
输出:非诚
PHP 相关文章推荐
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
ucenter通信原理分析
Jan 09 PHP
PHP中实现获取IP和地理位置类分享
Feb 10 PHP
使用php实现从身份证中提取生日
May 09 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
教你在header中隐藏php的版本信息
Aug 10 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 PHP
php自动注册登录验证机制实现代码
Dec 20 #PHP
php4与php5的区别小结(配置异同)
Dec 20 #PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 #PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 #PHP
PHP定时执行计划任务的多种方法小结
Dec 19 #PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 #PHP
php安全配置 如何配置使其更安全
Dec 16 #PHP
You might like
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
PHP中常用的魔术方法
2017/04/28 PHP
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
js倒计时显示实例
2016/12/11 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
在Django的视图中使用form对象的方法
2015/07/18 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Python测试线程应用程序过程解析
2019/12/31 Python
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
程序员机试试题汇总
2012/03/07 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
5.1手机促销活动
2014/01/17 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
总经理任命书
2014/03/29 职场文书
大学生英语演讲稿
2014/04/24 职场文书
安全生产月演讲稿
2014/05/09 职场文书
国家助学金受助感言
2015/08/01 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL
Redis主从复制操作和配置详情
2022/09/23 Redis