JSONP实现跨域请求JSON数据
来源:互联网 发布:喜马拉雅山攀登 知乎 编辑:程序博客网 时间:2024/05/15 00:26
为什么会出现json数据跨域访问限制?
这是因为所有支持JavaScript的浏览器都会使用同源策略这个安全策略。看看百度的解释:
同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持javascript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当一个百度浏览器执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行。
这就是引起为何取不到数据的原因了,那如何才能解决跨域的问题呢?没错,我们现在可以进入正题,来了解下什么是JSONP了。
JSONP是JSON with Padding的略称。它是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。
实验json跨域访问的问题
非跨域情况当前项目为(8080端口,访问项目内文件)
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" > $.ajax({ url:"http://localhost:8080/cardbatch/test.json", dataType:"json", success:function(data){ alert(data.message); } }); </script>
test.json文件中的内容:
跨域情况当前项目为(8080端口,访问8081端口文件)
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" > $.ajax({ url:"http://localhost:8081/cardbatch/test.json", dataType:"json", success:function(data){ alert(data.message); } }); </script>
可以看到test.json文件的加载在跨域访问时出现错误。
解决方式:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" > $.ajax({ url:"http://localhost:8081/cardbatch/test.json", dataType:"jsonp", jsonpCallback:"callback", success:function(data){ alert(data.message); } }); </script>
可以看到解决了json跨域问题。
修改一下看看
test.json修改为:
还有ajax调用修改为:可以看出json数据用什么包裹,ajax中jsonpCallback参数就是什么。
阅读全文
0 0
- JSONP实现跨域请求JSON数据
- Jsonp实现跨域请求数据
- jsonp实现json数据跨域访问
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- AJAX 跨域请求 - JSONP获取JSON数据
- Ajax 跨域请求 jsonp获取json数据
- AJAX 跨域请求 - JSONP获取JSON数据
- 关注民生民情——华北水利水电大学“情艺”国情社情调查团
- 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
- Class.forName()用法详解
- NLP深度学习 —— CS224学习笔记3
- 状态码收集
- JSONP实现跨域请求JSON数据
- 【tomcat】tomcat常见操作记录
- 日常(抗日神剧_扫雷)
- 无限轮播 RollViewPager 的简单使用
- fragment加载
- codeforces840C On the Bench -- DP
- python3.4 获取cookie后继续访问其他页面
- java提高篇(五)-----抽象类与接口
- 输出字典的键(key)