浅析php中jsonp的跨域实例


Posted in PHP onJune 21, 2013

我们现在www.test.com这个域名下面有这么个html文件testjsonp.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" >
 <head>
     <title>Untitled Page</title>
      <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
      <script type="text/javascript">
     jQuery(document).ready(function(){ 
        $.ajax({
             type: "GET",
             async: false,
             //url: "http://test/jsonp.php",
             url:"http://mytaobao.com/jsonp.php",
             dataType: "jsonp",
             jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
             jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
             success: function(json){
                 alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。回调函数名为: '+json.func);
             },
             error: function(){
                 alert("fail");
             }
         });
     });
     </script>
     </head>
  <body>
  </body>
 </html>

注意,要真正运行上面的代码可能需要jquery的文件,你可以将<script type="text/javascript" src="jquery-1.7.2.min.js"></script>改为你目录中jquery的文件路径:
如:<script type="text/javascript" src="js/jquery.js"></script>
然后,你可以再找个另外一个域名的web目录,将文件jsonp.php:
<?php
$callback = $_GET["callback"];
$a = array(
 'code'=>'CA1998',
    'price'=>'6000',
    'tickets'=>20,
    'func'=>$callback,
);
$result = json_encode($a);
echo "flightHandler($result)";
exit;

放到这个目录下面去。这样就可以测试了。
直接在浏览器访问testjsonp.html.就可以看到效果了。
PHP 相关文章推荐
PHP面向对象编程快速入门
Dec 14 PHP
剖析 PHP 中的输出缓冲
Dec 21 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP 递归效率分析
Nov 24 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 PHP
php redis setnx分布式锁简单原理解析
Oct 23 PHP
PHP数组实际占用内存大小原理解析
Dec 11 PHP
解析php中array_merge与array+array的区别
Jun 21 #PHP
邮箱正则表达式实现代码(针对php)
Jun 21 #PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 #PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 #PHP
Function eregi is deprecated (解决方法)
Jun 21 #PHP
解析php中获取url与物理路径的总结
Jun 21 #PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 #PHP
You might like
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
JQuery 写的个性导航菜单
2009/12/24 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Python open()文件处理使用介绍
2014/11/30 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
2016年春节问候语
2015/11/11 职场文书
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript