简述jsonp跨域实例
2016-04-08 11:12
253 查看
关于ajax跨域请求问题
首先我们需要两个域名,也就是两台机器,这里我使用本机和本地虚拟机进行测试。
1.我本地的地址是localhost,作为客户端。
2.我的虚拟机地址是192.168.254.128,作为服务端。
3.进行测试。
客户端代码
jsonp.php
服务端代码
index.php
这样当我在本地访问localhost/jsonp.php的时候就会报错了

因为ajax是不允许我们进行跨域操作的。跨域就是跨越了域名,除了localhost以外的域名都会报错。
那么我们如何解决这个问题呢,这时候就出现了jsonp。下面就使用jsonp对代码进行改造:
客户端代码
jsonp.php
服务端代码
index.php
这时候在访问localhost/jsonp.php就能够成功的获取数据了。
首先我们需要两个域名,也就是两台机器,这里我使用本机和本地虚拟机进行测试。
1.我本地的地址是localhost,作为客户端。
2.我的虚拟机地址是192.168.254.128,作为服务端。
3.进行测试。
客户端代码
jsonp.php
<script> $(function() { $.ajax({ url:'http://192.168.254.128/index.php', type:'post', dataType:'json', success:function(data) { alert(data[0]); } }); }); </script>
服务端代码
index.php
//这里只是构建一个json串 $json_data = '["customername","customername2"]'; echo $json_data;
这样当我在本地访问localhost/jsonp.php的时候就会报错了
因为ajax是不允许我们进行跨域操作的。跨域就是跨越了域名,除了localhost以外的域名都会报错。
那么我们如何解决这个问题呢,这时候就出现了jsonp。下面就使用jsonp对代码进行改造:
客户端代码
jsonp.php
<script> $(function() { $.ajax({ url:'http://192.168.254.128/index.php?jsoncallback=?', type:'post', dataType:'json', success:function(data) { alert(data[0]); } }); }); </script>
服务端代码
index.php
<?php $jsoncallback = htmlspecialchars($_REQUEST['jsoncallback']); $json_data = '["customername","customername2"]'; eccho $jsoncallback."(".$json_data.")"; ?>
这时候在访问localhost/jsonp.php就能够成功的获取数据了。
相关文章推荐
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- vbs 解析json jsonp的方法
- ajax中data传参的两种方式分析
- 原生AJAX写法实例分析
- 探秘ajax跨域请求
- JQuery ajax返回JSON时的处理方式 (三种方式)
- Ajax中浏览器和服务器交互详解
- ajax实现点击不同的链接让返回的内容显示在特定div里
- ajax 动态传递jsp等页面使用id辨识传递对象
- ajax与传统web开发的异同点
- AJAX简单应用实例-弹出层
- AJAX初级教程之初识AJAX
- Ajax无刷新分页的性能优化方法