文档章节

php中jsonp的跨域实例

zyt_1978
 zyt_1978
发布于 2016/06/19 22:10
字数 341
阅读 3
收藏 0

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

[html] view plain copy

 print?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2.  <html xmlns="http://www.w3.org/1999/xhtml" >  
  3.  <head>  
  4.      <title>Untitled Page</title>  
  5.       <script type="text/javascript" src="jquery-1.7.2.min.js"></script>  
  6.       <script type="text/javascript">  
  7.      jQuery(document).ready(function(){   
  8.         $.ajax({  
  9.              type: "GET",  
  10.              async: false,  
  11.              //url: "http://test/jsonp.php",  
  12.              url:"http://mytaobao.com/jsonp.php",  
  13.              dataType: "jsonp",  
  14.              jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)  
  15.              jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据  
  16.              success: function(json){  
  17.                  alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。回调函数名为: '+json.func);  
  18.              },  
  19.              error: function(){  
  20.                  alert("fail");  
  21.              }  
  22.          });  
  23.      });  
  24.      </script>  
  25.      </head>  
  26.   <body>  
  27.   </body>  
  28.  </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] view plain copy

 print?

  1. <?php  
  2.   
  3. $callback = $_GET["callback"];  
  4. $a = array(  
  5.     'code'=>'CA1998',  
  6.     'price'=>'6000',  
  7.     'tickets'=>20,  
  8.     'func'=>$callback,  
  9. );  
  10. $result = json_encode($a);  
  11. echo "flightHandler($result)";  
  12. exit;  


放到这个目录下面去。这样就可以测试了。

 

直接在浏览器访问testjsonp.html.就可以看到效果了。

© 著作权归作者所有

共有 人打赏支持
zyt_1978
粉丝 8
博文 166
码字总数 21058
作品 0
程序员
私信 提问
JSONP跨域的原理解析

JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于JavaScript代码能够访问的页...

武文海
2016/03/21
24
0
SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1、jQuery ajax跨域重定向...

bengozhong
2016/08/15
33
0
解决跨域问题的利器——JSONP

Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术。Ajax 允许在不干扰 Web 应用程序的显示和行为的情况下在后台进行数据检索。使用 函...

筱飞
2016/06/27
116
2
PHP判断ajax请求:HTTP_X_REQUESTED_WITH

有时我们需要判断是不是ajax请求来决定模块输出还是json格式输出. PHP判断ajax请求的原理: 在发送ajax请求的时候,我们可以通过XMLHttpRequest这个对象,创建自定义的header头信息, 在jquer...

鬼方赤命
2016/11/22
31
0
JQuery + JsonP 解决跨域请求

什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就...

刘引惟
2016/11/23
75
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux学习-1031(rsync同步工具 上)

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步 一、 rsync工具介绍 rsync是一个同步工具,在日常的运维中常会用到。它可以本地同步,也实现可以远程两台机器同步。...

wxy丶
11分钟前
0
0
python实战一期:第一天

1. 为什么学习python 1.1 为什么要学Python? Python第一是个非常牛B的脚本语言,能满足绝大部分自动化运维的需求,又能做后端C/S架构,又能用WEB框架快速开发出高大上的Web界面,只有当你自...

laoba
13分钟前
1
0
Java并发编程学习三:线程同步的关键字以及理解

上篇文章中介绍了Java线程的带来的问题与内存模型中介绍了线程可能会引发的问题以及对应Java的内存模型,顺带介绍了Volatile和Sychronized关键字。今天对Java中涉及到的常见的关键类和关键字...

JerryLin123
20分钟前
0
0
我用代码来给你们分析一个赚钱的技巧

赚钱是个俗气的话题,但又是人人都绕不开的事情。我今天来“科学”地触碰下这个话题。 谈赚钱,就会谈到理财、投资,谈到炒股。有这样一个笑话: 问:如何成为百万富翁? 答:带一千万进入股...

crossin
20分钟前
0
0
spring MatchingBean应用

1、编写接口FactoryList import java.util.List;public interface FactoryList<E extends MatchingBean<K>, K> extends List<E> { E getBean(K factor); List<E> getBeanLi......

重城重楼
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部