我们都知道,由于受到浏览器的限制,AJAX 是不允许跨域请求,不过可以通过使用 JSONP 来实现,本文介绍了 JSONP 的是怎么在 jQuery,MooTools 的,Dojo Toolkit 中实现的,感兴趣的朋友跟随小编一起看看吧
Asynchronous JavaScript and XML (AJAX ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术。Ajax 允许在不干扰 Web 应用程序的显示和行为的情况下在后台进行数据检索。使用 XMLHttpRequest
函数获取数据,它是一种 API,允许客户端 JavaScript 通过 HTTP 连接到远程服务器。Ajax 也是许多 mashup 的驱动力,它可将来自多个地方的内容集成为单一 Web 应用程序。
我们都知道,由于受到浏览器的限制,AJAX 是不允许跨域请求。不过可以通过使用 JSONP 来实现。JSONP 是一种通过脚本标记注入的方式,它是可以引用跨域 URL 的 js 脚本,不过需要提供一个回调函数(必须在您自己的页面上),因此,你可以自己处理结果。 本文介绍了 JSONP 的是怎么在 jQuery,MooTools 的,Dojo Toolkit 中实现的。
jQuery 的 JSONP
1. 什么是 JSONP
要了解 JSONP,不得不提一下 JSON,那什么是 JSON?
JSON is a subset of the object literal notation of JavaScript. Since JSON is a subset of JavaScript, it can be used in the language with no muss or fuss.
JSONP(JSON with Padding) 是一个非官方的协议,它允许在服务器端集成 Script tags 返回至客户端,通过 javascript callback 的形式实现跨域访问(这仅仅是 JSONP 简单的实现形式)。
2. JSONP有什么用
由于同源策略的限制,XmlHttpRequest 只允许请求当前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过 script 标签实现跨域请求,然后在服务端输出 JSON 数据并执行回调函数,从而解决了跨域的数据请求。
jQuery.getJSON 方法:
Js 代码如下:
1 2 3 4 5 6 |
|
或者类似
Js 代码如下: