跨域请求问题以及相关解决方法之JSONP
来源:互联网 发布:免费下载苹果软件 编辑:程序博客网 时间:2024/06/05 09:05
- 相关前置知识
- Ajax 维基百科 和 MDN
- 示例
- jQueryajax jQuery
- XMLHttpRequest MDN
- 示例
- 同源策略Same-origin policy 维基百科
- JSONP 解决方式
- Client Side
- Server Side
- Ajax 维基百科 和 MDN
相关前置知识:
Ajax 维基百科 和 MDN
Ajax ( 也可以写作 AJAX; 发音是 /ˈeɪdʒæks/; 它是异步 JavaScript 和 XML 的缩写 ) 是一组相关的 Web 开发技术,客户端使用它来创建异步的 Web 应用程序。使用 Ajax, Web 应用可以与服务器异步的发送和接收数据(在后台)而不会干扰已经存在的页面的展示和行为。数据可以通过使用 XMLHttpRequest
对象进行处理。尽管名称如此,使用 XML 并不是必须的( JSON 经常在 AJAJ变体中使用 ),并且请求也并不是必须是异步的。
Ajax 并不是一个单一的技术,而是一组技术。可以与 HTML 和 CSS 标记和样式信息结合在一起。DOM 可以通过 JavaScript 来动态的展示 -同时允许用户与之交互- 提供的信息。JavaScript 和 XMLHttpRequest 对象提供了一种可以异步的交换数据从而避免整个页面重新加载的方法。
示例
jQuery.ajax() jQuery
保存数据到服务器并在完成之后提醒用户.
$.ajax({ method: "POST", url: "some.php", data: { name: "John", location: "Boston" }}).done(function( msg ) { alert( "Data Saved: " + msg );});
获取 HTML 页面的最新版本.
$.ajax({ url: "test.html", cache: false}).done(function( html ) { $( "#results" ).append( html );});
XMLHttpRequest MDN
获取file.html
var xhr = new XMLHttpRequest();xhr.onload = function() { alert(this.responseXML.title);}xhr.open("GET", "file.html");xhr.responseType = "document";xhr.send();
同源策略(Same-origin policy) 维基百科
在计算机中,同源策略(same-origin policy)
是 Web 应用程序安全模型中一个重要的概念。在这一规则下,只有当两个网页有同一个 源(origin)
时,一个 Web 浏览器才会允许包含在第一个网页中的脚本访问第二个网页中的数据。一个源通过 URI 方案,主机名,端口号的组合来定义。这一规则可以防止一个网页上的恶意脚本通过页面的 DOM(Document Object Model)
访问另一个网页上的敏感数据。
JSONP 解决方式:
Client Side:
引入jQuery并且使用下面的代码
var url = "http://rhtsjz.sinaapp.com/?callback=?";$.getJSON(url, function (data) { console.log(data);});
代码在jsfiddle: http://jsfiddle.net/rhtsjz/v94u6p4h/
Server Side:
<?php $data = array( 'name' => 'God', 'age' => -1 ); header('Content-Type: application/json'); $callback = $_GET["callback"]; if($callback){ echo $callback . '(' . json_encode($data) . ')'; }else{ echo '(' . json_encode($data) . ')'; }?>
请求中如果有callback
参数,就会在返回结果中把 json 数据放在括号内作为方法的参数, 并将 callback
的值作为方法名放在括号前面;这样对于客户端来说就相当于一次方法调用.
- 跨域请求问题以及相关解决方法之JSONP
- 关于前端开发的跨域问题以及解决方法jsonp
- jsonp跨域请求问题
- jsonp跨域请求问题
- 跨域请求之JSONP
- 跨域请求之JSONP
- 跨域请求解决方法(JSONP, CORS)
- 网页跨域请求问题之jsonp原理分析
- AJAX,JSON,JSONP以及跨域请求
- https跨域请求jsonp以及else
- jquery使用jsonp跨域请求问题
- jsonp解决跨域请求问题
- JSONP解决跨域请求问题
- jsonp解决跨域请求问题
- jsonp解决跨域请求问题
- 跨域请求问题 : jsonp & CORS
- 跨域请求HTTP数据之JSONP
- ajax 跨域请求之jsonp
- 在iOS开发中,如何ARC模式如何兼容MRC模式。
- 变量的命名规则,数据类型
- 用CCA解析同一环境下两个AP的性能表现差异
- 利用token来进行防止表单重复提交
- 2012年5月SAT香港真题解析
- 跨域请求问题以及相关解决方法之JSONP
- 检测文件编码类型
- 强连通分量
- 火箭鼠激光版自动开关,换图,旋转
- 谷歌官方建议笔记——布局
- mysql int(m)与int(m)的区别
- Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm
- Android-基础复习之工程介绍
- MYSQL_FIELD